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]如一个来自bashbug,Bash 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) 

外部链接

手册页

文件系統
程序
  • at
  • bg
  • chroot
  • cron
  • fg
  • kill
  • killall英语killall
  • nice
  • pgrep
  • pkill英语pkill
  • ps
  • pstree英语pstree
  • time
  • top
用户环境
  • clear
  • env
  • exit
  • history英语history (Unix)
  • id
  • logname
  • mesg英语mesg
  • passwd
  • su
  • sudo
  • uptime
  • talk英语talk (software)
  • tput英语tput
  • uname
  • w
  • wall英语wall (Unix)
  • who
  • whoami
  • write英语write (Unix)
文本编辑
  • awk
  • banner英语banner (Unix)
  • basename
  • comm英语comm
  • csplit英语csplit
  • cut
  • diff
  • dirname
  • ed
  • ex
  • fmt英语fmt
  • fold英语fold (Unix)
  • head英语head (Unix)
  • iconv
  • join英语join (Unix)
  • less
  • more
  • nl英语nl (Unix)
  • paste英语paste (Unix)
  • sed
  • sort英语sort (Unix)
  • spell英语spell (Unix)
  • strings英语strings (Unix)
  • tail
  • tr
  • uniq英语uniq
  • vi
  • wc
  • xargs
壳层内建
网络英语Network utility
查找
文档
  • apropos英语apropos (Unix)
  • help英语help (command)
  • man
软件开发
杂项
  • bc
  • cal
  • dc
  • expr
  • lp英语lp (Unix)
  • lpr
  • sleep
  • true和false
  • yes