我发现这种执行if命令的方法:
$if echo test | grep st ; then echo yes ; fi ; echo $?
test
yes
0
Run Code Online (Sandbox Code Playgroud)
看起来不错。让我们尝试一下不匹配:
$if echo test | grep 123 ; then echo yes ; fi ; echo $?
0
Run Code Online (Sandbox Code Playgroud)
那是不对的。该if语句运行正常,但返回零退出代码。
有人能为我解释一下吗?