true和false(命令)

本頁使用了標題手工轉換,涉及首字符小寫
本页使用了标题或全文手工转换,现处于繁体转换模式
出自求聞百科

類Unix操作系統中,truefalse的唯一功能就是始終返回設定的退出狀態。程序員和腳本通常使用退出狀態評估命令執行的成功(0狀態)與否(不為零)。truefalse命令可以代表命令成功的邏輯值,因為true返回0,false返回1。

用法

命令通常在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]如一個來自bashbugBash bug報告腳本的例子:

 : ${TMPDIR:=/tmp}
 : ${EDITOR=$DEFEDITOR}
 : ${USER=${LOGNAME-`whoami`}}

參見

參考

  1. Colon, The Open group base specifications, issue 7, [2013-04-27], IEEE std 1003.1-2008 
  2. Cooper, Mendel, Null command, Advanced Bash-scripting guide, 6.3, The Linux documentation project, 2011-04 [2011-08-04] 

外部連結

手冊頁