2010-09-20 140 views
0

我有两个Linux xterm与“几乎”相同的设置。一个设置工作,另一个不适合我的应用程序。linux环境变量比较

是否有一个工具可以帮助我找出哪个特定环境变量导致失败? (可视化差异)

目前 - 我做

env > a1 
env > a2 
在2个xterm的

,并做他们差异。

但想知道是否有一个工具可以帮助我节省一些时间。谢谢

+1

meld可以很好地显示差异http://meld.sourceforge.net/也k3diff – msw 2010-09-20 23:27:38

+2

你现有的解决方案有什么问题?它看起来非常合理。为了使它更健壮,你可以考虑对输出'env |进行排序sort> a1'。 – 2010-09-20 23:40:30

+0

如果您说出您的代码失败的具体方式,这将有所帮助。 – 2010-09-21 00:14:32

回答

1

把@msw和@Adam Byrtek(我投了票)的评论放在一起,我们得到如下内容。请注意,DIFF有效果很好--side由端选项,如果你不具备X:

a1 $ env | sort > a1 
a2 $ env | sort > a2 
#somehow get the files on the same host 

a2 $ meld a1 a2 
# or, in a terminal setting 
a2 $ diff --side-by-side a1 a2 

事情找是PATH,LD_PRELOAD,任何APP瓦尔像JAVA_HOME,PYTHON_PATH,或RUBYPATH。

0

对我来说,最难的部分是在我的一些环境变量中处理换行符。所以我用空字节来定义变量:

a1 $ env -0 | sort -z | tr "\0" "\n" > /tmp/a1.env 
a2 $ env -0 | sort -z | tr "\0" "\n" > /tmp/a2.env 
a2 $ diff /tmp/a1.env /tmp/a2.env 

排序是为了帮助差异匹配变量。