shell高级编程笔记(第六章 退出和退出状态)

    技术2022-07-13  74

    第六章 退出和退出状态

    exit 命令被用来结束脚本,就像C语言一样。它也会返回一个值来传给父进程,父进程会判断是否可用。 每个命令都会返回一个exit状态(也可以叫return状态)。

    脚本中的函数和脚本本身都会返回退出状态。在脚本或者是脚本函数中执行的最后命令会决定退出状态。在脚本中,"exit n"命令将会把n退出码传递给shell;当一个脚本不带参数exit来结束时,脚本的退出状态由脚本中最后执行的命令来决定

    $? 读取最后执行命令的退出码。函数返回后,$?给出函数最后执行的那条命令的退出码。这种给函数返回值的方法是Bash的方法。对于脚本来说也一样。

    Example 6.1 exit/exit 状态

    #!/bin/bash echo hello echo $? #0 lspwd echo $? #非0 exit 123 #123

    $? 对于测试脚本中的命令的结果特别有用(见Example 12.32和Example 12.17) 注意:!逻辑非操作,将会反转test命令的结果,并且这会影响exit状态。

    Example 6.2 否定一个条件使用!

    true #true是shell内建命令,什么都不做,shell返回0 echo "exit status of \"true\" = $?" # 0 ! true #注意:"!"后面需要一个空格 echo "exit status of \"true\" = $?" #1

    如果一个命令以"!"开头,那么将使用Bash的历史机制。就是显示这个命令被使用的历史。

    注意:特定的退出码都有预定义的含义,用户不应该在自己的脚本中指定它。

    Processed: 0.011, SQL: 9