Shell

語句的含義-test -x /usr/bin/find ||出口 0

  • January 10, 2022

我只是想了解以下陳述的含義以及它們是否正確。

test -x /usr/bin/find || exit 0 
Command 1
Command 2
Command 3

的輸出test -x /usr/bin/find始終為 0。這意味著將執行 exit 0 命令,這意味著永遠不會執行命令 1、2、3。我在這裡嗎?

test -x /usr/bin/find(或[ -x /usr/bin/find ])不輸出任何東西。如果是一個現有的執行檔,則測試為,如果路徑名不存在或它不可執行,則為假。/usr/bin/find

如果test成功退出(退出狀態為零,表示“無錯誤”),shell 將執行其餘命令。如果它以失敗退出(非零退出狀態,表示“某些錯誤”),exit 0將終止目前 shell,阻止其餘命令執行。

可以說,使用exit 1exit代替exit 0何時find找不到會更好/usr/bin。使用遮罩(非零)exit 0的退出狀態,並防止此腳本的呼叫者收到在給定位置查找失敗的通知。test``find

與在 shell 中作為布爾值測試時退出狀態為零的事實評估為“真”相關:

與使用||&&一般情況相關:

引用自:https://unix.stackexchange.com/questions/685754