如何退出非零状态代码的for循环



我有下面的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中。

相关内容

  • 没有找到相关文章

最新更新