true 是 bash 的内建命令,它的返回值($? 的值)是 0(代表执行成功)。和 true 相对应的命令是 false 命令,它也是 bash 的内建命令,它的返回值是 1(代表执行失败)。
true 和 false 这两个命令常用于在 script 中作为空命令来执行;或者表示一个总是返回真值、或者假值的条件表达式;或者用于设置函数的返回状态。
例1,test.sh:
true
echo $?=$?
false
echo $?=$?
! true
echo $?=$?
! false
echo $?=$?
在命令提示符
下输入 ./test.sh,执行结果如下:
$?=0
$?=1
$?=1
$?=0
例2,test.sh:
在命令提示符下输入 ./test.sh,执行结果如下:
please input account : root
wrong account
please input account : user
correct account
例3,test.sh:
#!/bin/bash
account ()
{
if [ $1 == "user" ]
then
true
else
false
fi
}
# infinite loop
while true
do
echo -n "please input account : "; read user
account $user; ret=$?
if [ $ret -eq 0 ]
then
echo "correct account"
break
else
echo "wrong account"
fi
done
在命令提示符下输入 ./test.sh,执行结果如下:
please input account : root
wrong account
please input account : user
correct account