[英]test command in unix doesn't print output
為什么在 unix 終端中命令test 3 -lt 6
沒有輸出? 不應該測試輸出 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
。 返回值不定期打印,我們直接測試它們,例如使用if
或while
語句,或者可能在帶有&&
或||
的快捷方式中使用它 . 有時我們可能會存儲返回值,它也可以在變量?
.
test
命令相當古老。 既然你已經標記了bash
那么你可能希望考慮使用
if (( 3 < 6 )); then
用於算術測試,或
if [[ $name == "Fred Bloggs" ]] ; then
用於文本或模式測試。
這些通常更直觀且不易出錯。 與test
一樣, (( ))
和[[ ]]
本身就是命令,可以在沒有if
或while
情況下使用。 它們在 true 時返回 0(成功),在 false 時返回 1(失敗)。
順便說一下,當你做一個man test
你實際上是在查看test
程序的文檔。 使用man bash
或help test
可能會更好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.