如何让“FOO=bar.cpp meld a/$FOO b/$FOO”按照我期望的方式工作?

如何让“FOO=bar.cpp meld a/$FOO b/$FOO”按照我期望的方式工作?

据我了解,要比较不同目录中的同一文件,我应该能够这样做:

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/$FOOFOO=bar.cpp执行了,所以FOO设置为bar.cpp

相关内容