如果这是一个重复的问题,我提前道歉。在在这里询问之前,我确实努力进行了搜索/检查。
我很乐意写这样的俏皮话:
foocommand && foocommand2 && foocommand3
我的想法是,如果前一个命令“成功”,我只希望运行后续命令。
我正在编写一个有点冗长的脚本,而这个单行代码是不可行的,因为对于其他人来说,它看起来像是一大堆令人困惑的代码。
我想在脚本中间隔开命令并在它们之间写注释。我怎样才能做到这一点并且仍然有相当于 && 的东西?
答案1
您可以将 shebang 行更改为
#!/bin/bash -e
出现任何错误后,脚本将停止。
答案2
你可以这样做:
#!/bin/sh
ls -lh &&
# This is a comment
echo 'Wicked, it works!'
我希望我正确理解了你的问题。
答案3
如果你不喜欢这个set -e
想法,也许你可以颠倒逻辑。
foocommand || exit 1
foocommand2 || exit 2
foocommand3 || exit 3
更有用的是,替换exit
为打印有用的错误消息的内容,然后退出。当然,在函数内部,您需要return
而不是exit
.
答案4
您可以考虑使用嵌套if
语句。其他选择是使用 curly 进行分组{ true && echo hi; } || echo huh
更新1:
这是一个没有换行符/注释的示例:
{ { false && echo "inner true"; } && { echo "inner true" && true; } || { echo "inner false" && false; } || echo "outter false"; }