该命令仅在
为什么不起作用?
HELLO=WORLD echo $HELLO
在我的外壳中,它输出
问题是bash在命令执行前评估并替换$HELLO
。如果你写这样的脚本:
echo $HELLO
并运行HELLO=WORLD ./script
,您将看到预期的输出。
echo
的环境中将HELLO
设置为字符串WORLD
。但是echo
忽略了那个环境变量,只写了它的参数和一行换行符。在shell中,(可能(根本没有设置变量HELLO,所以echo
只打印一个换行符。
也许你想要:
HELLO=WORLD; echo "$HELLO"
这是两个单独的命令。第一个在shell中设置HELLO
,第二个将该值作为参数传递给echo
。