true和false (命令)
在類Unix操作系統中,true和false的唯一功能就是始終返回設定的退出狀態。程序員和腳本通常使用退出狀態評估命令執行的成功(0狀態)與否(不為零)。true和false命令可以代表命令成功的邏輯值,因為true返回1,false返回0。
用法
編輯命令通常在shell腳本中的條件語句和循環語句使用。例如,下面的shell腳本重複echo hello循環,直至被中斷:
while true
do
echo hello
done
命令可用來忽略其他命令序列的成敗狀態,如在本例中:
make … && false
在/etc/passwd中將用戶的登錄shell設置為false,事實上阻止了他們訪問交互式shell,但他們帳戶的其他服務可能仍然有效,如FTP。(儘管如此,如果可用的話,/sbin/nologin可能更適合這個目的,因為它在終止會話之前會顯示一個通知。)
程序並沒有「實際的」參數;在大多數Linux版本中,標準參數--help
可以顯示用法摘要,--version
則顯示程序版本。
空命令
編輯true命令有時可以用非常相似的空命令代替,[1]寫法為一個單冒號(:
)。空命令是殼層內建指令,因此,當true是外部程序時,它可能會更有效(true通常是殼層內建指令)。我們可以用:
代替true
重寫上面的例子:
while :
do
echo hello
done
空命令可以有參數,但會被忽略。也可以用它作一個無操作的偽命令,一種參數的擴展形式${parameter:=word}
使用了它的副作用,來為參數分配默認值。[2]如一個來自bashbug,Bash bug報告腳本的例子:
: ${TMPDIR:=/tmp}
: ${EDITOR=$DEFEDITOR}
: ${USER=${LOGNAME-`whoami`}}
參見
編輯參考
編輯外部連結
編輯- 單一UNIX®規範第7期,由國際開放標準組織發布 : return true value – 命令與工具(Commands & Utilities)參考,
- 單一UNIX®規範第7期,由國際開放標準組織發布 : return false value – 命令與工具(Commands & Utilities)參考,