mic*_*con 72 bash shell-script exit-status
我想做这样的事情:
if cmd1 && cmd2
echo success
else
echo epic fail
fi
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
Pet*_*zel 106
这些应该做你需要的:
cmd1 && cmd2 && echo success || echo epic fail
Run Code Online (Sandbox Code Playgroud)
或者
if cmd1 && cmd2; then
echo success
else
echo epic fail
fi
Run Code Online (Sandbox Code Playgroud)
Orl*_*ier 65
问题中的伪代码与问题的标题不对应。
如果有人需要真正知道在命令 1 失败时如何运行命令 2,这是一个简单的解释:
cmd1 || cmd2: 这将运行cmd1,如果失败,它将运行cmd2cmd1 && cmd2: 这将运行cmd1,如果成功,它将运行cmd2cmd1 ; cmd2:这将运行cmd1,然后它会运行cmd2,与运行失败或成功无关cmd1。Joh*_*han 28
彼得·乌泽尔 (Petr Uzel) 恰到好处,但您也可以使用神奇的 $?。
$? 保存最后执行的命令的退出代码,如果您使用它,您可以非常灵活地编写脚本。
这个问题有点触及这个话题,使用 $ 的最佳实践?在 bash 中?.
cmd1
if [ "$?" -eq "0" ]
then
echo "ok"
else
echo "Fail"
fi
Run Code Online (Sandbox Code Playgroud)
然后,您还可以对不同的退出代码做出反应,并根据需要做不同的事情。