Shell

Shell 腳本 = 命令“測試” = 簡單問題

  • October 8, 2021

啟動腳本的摘錄如下所示:

啟用=1

測試“$啟用”!=“0”|| 出口 0

問題是,無論 Enabled 設置為 0 還是 1,腳本總是在該行退出。我查找了“man test”,據我了解,test 總是會評估表達式,然後 exit(!!) 並返回程式碼?它是否正確。因此,無論變數的值是什麼,此腳本都會在這一行始終退出?(所以它的越野車)。

謝謝!!詹斯

#!/bin/bash
ENABLED=1
test "$ENABLED" != "0" || exit 0
echo "wasn't zero"

當我執行這個時,我得到

[madhatter@risby tmp]$ ./foo
wasn't zero

所以,在我看來,要麼

  • 你正在使用一個奇怪的解釋器(你在哪個 shell 下執行它),或者
  • 你選擇了錯誤的test(你能做一個which test並告訴我們結果,或者明確地使用/usr/bin/test嗎?),或者
  • (對此感到抱歉)你錯了它沒有進入下一行(正如 Janne 上面所說的,我們能否看到更多的 shell 腳本,或者你能否在測試後立即放置一個像我的 echo 語句一樣的單行金絲雀?

引用自:https://serverfault.com/questions/197577