我有下面的shell脚本,我正试图用非零状态代码退出for循环,但不知何故,我的退出行不起作用,它在它之后打印Hello World
,但我不想打印它。我做错了什么?
for env in dev stage; do
echo "$env"
false && echo howdy! || (echo hello && exit 1);
echo "Hello World"
done
对于上述情况,它应该打印hello
并退出,但它也打印Hello World
更新
如果我尝试这个,那么我会得到一个语法错误:
for env in dev stage; do
echo "$env"
false && echo howdy! || { echo hello && exit 1 };
echo "Hello World"
done
错误为:
syntax error near unexpected token `done'
我运行的是Python 2.7版本。
(...)
引入了一个子shell。exit
退出子shell,而不是运行循环的shell。请改用{ echo hello && exit 1 ; }
,{ ...; }
将保持在同一个shell中。