有什么办法让 bash 脚本错误出来并在遇到错误时返回非零[: ==: unary operator expected
退出代码?
我在网上搜索并尝试添加set -euxo pipefail
但这些方法都没有按预期工作。(在 macOS 和 Linux 上测试(。
$ ./a.sh
./a.sh: line 4: [: ==: unary operator expected
barfoo
$ echo $?
0
#!/bin/bash
set -euo pipefail
if [ == "foo" ];
then
echo "foobar"
exit 1
fi
echo "barfoo"
Bash 打印[: ==: unary operator expected
并继续执行其余代码并最终返回 0。我已经知道如何解决"一元运算符预期"问题,只是好奇我应该怎么做才能使脚本立即离开非零代码。
感谢您的任何帮助。
您必须将 Bash 脚本视为终端。例如,如果您打开终端并错误键入命令chmox -x <file>
,终端不会退出,而是打印警告并保持打开状态,以便您继续工作。
您不需要键入大量命令,而是让 Bash 从文件中执行它。