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命令有时可以用非常相似的空命令代替，写法为一个单冒号（:）。空命令是壳层内建指令，因此，当true是外部程序时，它可能会更有效（true通常是壳层内建指令）。我们可以用:代替true重写上面的例子：
while :
do
  echo hello
done
空命令可以有参数，但会被忽略。也可以用它作一个无操作的伪命令，一种参数的扩展形式${parameter:=word}使用了它的副作用，来为参数分配默认值。如一个来自bashbug，Bash bug报告脚本的例子：

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

 参见 
Unix实用程序列表
二值原理
IEFBR14

 参考 

 外部链接 

 手册页 
true(1): Do nothing, successfully – GNU Coreutils参考
false(1): Do nothing, unsuccessfully – GNU Coreutils参考
true(1): Return true value – FreeBSD手册页
false(1): Return false value – FreeBSD手册页

Category:标准Unix程序
Category:Unix SUS2008实用工具