这是一个简单的问题。为什么这不像我想的那样:
(echo "Test 1"; exit) && echo "Test 2"
……或者……
VAR1=1
VAR2=2
[ $VAR1 == $VAR2 ] || (echo '$VAR1 does not equal $VAR2, exiting.'; exit)
echo -e 'Well, I\'m still alive yo!'
尽管有明确的 exit
命令,运行这两个片段中的任何一个都会导致脚本继续执行。
显然括号出于某种原因影响了命令,我的问题是为什么?
最佳答案
括号在子 shell 中执行它们的内容,因此退出的是子 shell。
您通常可以使用另一个 &&
或使用 {}
代替 ()
来达到相同的效果。
{ echo "Test 1"; exit; } && echo "Test 2"
或者
echo "Test 1" && exit && echo "Test 2"
关于linux - `exit` 括号内不退出脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19886797/