如果我跑
export COMMAND=nonexistentcommand && which $COMMAND >/dev/null || \
(echo "download filewithcommand.sh" && export COMMAND=./filewithcommand.sh)
echo "command: $COMMAND"
我明白了
download filewithcommand.sh
command: nonexistentcommand
但我认为应该是
download filewithcommand.sh
command: ./filewithcommand.
这句话有什么问题吗?
答案1
COMMAND
设置为nonexistentcommand
,这就是您得到的输出。普通的。
您确实设置了COMMAND
一些其他值,但它位于子 shell 中(用括号括起来),因此它不会影响父 shell 的环境。您的意思是使用{
大括号}
(不分叉子外壳)而不是括号(
吗)
?