了解 Bash 脚本中的条件"if [ $?ABC ]; then"



在bash脚本中,我看到如下条件,我无法理解,也无法找到它考虑低于

if [ $?ABC ]; then
echo "here-a"
else
echo "here-b"
fi

在上面的代码中,ABC是一个环境变量。帮助我理解这一点和/或指向相关资源。

从Bash手册中了解$?:

扩展到最近执行的前台管道的退出状态。

;退出状态";总是一个数字。

test:的手册页面

-n STRING
the length of STRING is nonzero
STRING equivalent to -n STRING

如果您将一个数字(退出状态(与字符串";ABC";新字符串的长度将始终为非零。正如弗拉瓦多纳告诉你的那样:结果永远是真实的。

您可以将这五行替换为:

echo "here-a"

else表达没有影响。

最新更新