#!/bin/bash
patience=3
read -t "$patience" -p "Press 'Enter' if you run Unix or Linux, otherwise press 'ctrl+d' "
status="$?"
if [[ $status -eq 0 ]]
then
echo "That's great :-)"
elif [[ $status -eq 1 ]]
then
echo "(exit status=$status)
You are welcome to try Unix or Linux :-)"
else
echo "(exit status=$status)
You did not answer within $patience seconds. Anyway :-)"
fi
echo "'Unix & Linux' is a question/answer web site for
Unix and Linux operating systems"
您可能会问如何在没有 Unix 或 Linux 的情况下运行 bash shellscript ;-)
来自
man bash
:echo $?
将返回最后一个命令的退出状态。你得到127
的是最后执行的命令的退出状态,退出了一些错误(很可能)。0
成功完成的命令以(最有可能)的退出状态退出。0
自从echo $v
上一行完成后,最后一个命令给出了输出,没有出现错误。如果执行命令
你会得到如下输出:
也试试:
你会得到
0
.你会得到
1
.该
true
命令什么都不做,它只是以状态码退出0
;并且该false
命令也不执行任何操作,它只是以指示失败的状态代码退出(即状态代码1
)。$?
在 shellscripts 中作为一种根据前一个命令的工作方式(检查退出状态)来决定做什么的方法很有用。我们可以预期退出状态是0
前一个命令工作时(成功完成),否则是一个非零数值。演示示例:
您可能会问如何在没有 Unix 或 Linux 的情况下运行 bash shellscript ;-)