据我了解,要比较不同目录中的同一文件,我应该能够这样做:
FOO=bar.cpp meld a/$FOO b/$FOO
但是,它不起作用,就像$FOO
是一个空字符串一样。这并不奇怪:
(FOO=bar.cpp && meld a/$FOO b/$FOO)
我的问题是为什么第一个例子不起作用?
答案1
在:
FOO=bar.cpp meld a/$FOO b/$FOO
它是简单命令,所以在扩展FOO=bar.cpp
时没有执行。$FOO
在:
FOO=bar.cpp && meld a/$FOO b/$FOO
有2个命令:
FOO=bar.cpp
和:
meld a/$FOO b/$FOO
当在 , 中执行参数替换时meld a/$FOO b/$FOO
,FOO=bar.cpp
执行了,所以FOO
设置为bar.cpp
。