Linux和Unix的Bourne Shell退出状态示例

时间:2020-01-09 10:37:31  来源:igfitidea点击:

Bourne shell退出状态代码说明
每个UNIX命令终止时都会返回一个状态。
如果不成功,它将返回一个代码,告诉shell程序输出错误消息。
您可以使用exit命令使Shell程序保持一定的退出状态。

Bourne Shell 退出状态的典型值

  • 0成功。
  • 1内置命令失败。
  • 2发生语法错误。
  • 3接收到的信号没有被捕获。

使用bourne shell时如何打印退出状态?

输入命令:

$ ls

要打印其退出状态,请输入以下命令:

$ echo $?

再尝试一些示例:

date1
echo $?
date
echo $?
cat /etc/passwd
echo $?
grep Hyman /etc/passwd
echo $?

Linux或Unix /bin/sh退出代码教程示例

如何在脚本中存储或使用退出代码

要将最后执行的命令的退出状态存储到名为status的shell变量中,请输入:

command1
status=$?

您可以将退出状态与test命令或if命令一起使用。

#!/bin/sh
user=""
if grep "$user" /etc/passwd; then
        echo "$user has an account"
else
        echo "$user doesn't have an account"
fi

如下运行:

./script-name Hyman

grep命令用作条件,但实际上可以是任何命令。
如果返回零退出状态,则条件为true;否则为false。
否则,它是错误的。
在此示例中,只要条件为true,while循环就会执行给定命令。
同样,condition可以是任何命令,并且如果该命令以零退出状态退出,则为true。

while condition; do
        commands
done

这是另一个简单的示例:

#!/bin/sh
x=0
while [ $x != 3 ]
do
     let x=x+1
    echo $x
done

这是另一个示例:

#!/bin/sh
while [ -r "" ]
do
    cat  >> output
    shift
done

如下运行:

./script-name file1 file2 fil3
cat output

如何为我自己的脚本设置退出代码值

要在脚本中设置退出代码,请使用:

exit N
exit 0
exit 999