test 3 -lt 6为什么unix 终端中的命令没有输出?不应该测试输出 0 或 1 吗?
我做了一个男人测试,它说
以 EXPRESSION 确定的状态退出
退出状态不打印,只是返回。您可以在if或中对其进行测试while,例如
if test 3 -lt 6 ; then
echo ok
else
echo not ok
fi
此外,最后一个表达式的退出代码保存在$?:
test 3 -lt 6; echo $?
test返回退出状态,该状态指示测试是否成功。$?您可以在执行后立即读取它,test也可以直接在控制结构中使用它,例如:
if test 3 -lt 6
do echo "everything is aaaaalright"
else echo "whaaat?"
fi
shell 中的每个命令都有一个返回值,而不仅仅是test. 返回值被快速打印出来,我们直接测试它们,例如使用iforwhile语句,或者可以在快捷方式中使用&&or ||。有时我们可能会存储返回值,它也存在于变量中?。
该test命令相当古老。既然您已标记bash,那么您可能希望考虑使用
if (( 3 < 6 )); then
算术测试,或
if [[ $name == "Fred Bloggs" ]] ; then
用于文本或模式测试。
这些通常更直观且不易出错。Like test, (( ))and[[ ]]本身就是命令,可以在没有ifor的情况下使用while。它们在 true 时返回 0(成功),在 false 时返回 1(失败)。
顺便说一句,当您执行 a 时,man test您实际上是在查看该test程序的文档。您可能会更好地使用man bashor help test。