在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
表达没有影响。