true和false (命令)

類Unix作業系統中,truefalse的唯一功能就是始終返回設定的退出狀態。程式設計師和指令碼通常使用退出狀態評估命令執行的成功(0狀態)與否(不為零)。truefalse命令可以代表命令成功的邏輯值,因為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]如一個來自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, (原始內容存檔於2014-04-27) 
  2. ^ Cooper, Mendel, Null command, Advanced Bash-scripting guide, 6.3, The Linux documentation project, April 2011 [2011-08-04], (原始內容存檔於2019-06-03) 

外部連結

編輯

手冊頁

編輯