在Bash中是否有类似于pipefail的东西,用于多个命令,就像try语句一样。我想做这样的事情:
echo "trying stuff"
try {
command1
command2
command3
}
如果任何命令失败,立即退出并回显该命令的错误。我不想做像这样的事情:
command1
if [ $? -ne 0 ]; then
echo "command1 borked it"
fi
command2
if [ $? -ne 0 ]; then
echo "command2 borked it"
fi
等等,或者类似的任何内容:
pipefail -o
command1 "arg1" "arg2" | command2 "arg1" "arg2" | command3
我认为每个命令的参数会相互干扰(如果我错了请纠正)。这两种方法对我来说似乎非常冗长和恶心,所以我在这里呼吁寻求一种更有效的方法。
set -euo pipefail
。这行代码可以帮助您在Bash脚本中更好地处理错误和异常情况。 - Pablo Bianchi