linux不保存退出命令_3分钟短文 | Linux 命令正确的退出方式:exit 0

引言

通常,在编写Bash脚本时,需要在满足特定条件时终止脚本,或者根据命令的退出代码采取措施。

在本文中,我们将介绍Bash exit内置命令和已执行命令的退出状态。

9f941dba93a78d44af9dd492a91e3a24.png

退出状态

每个shell命令在成功终止时都会返回退出代码。

按照惯例,退出代码为零表示命令已成功完成,非退出代码为零表示遇到错误。

特殊变量$?返回最后执行的命令的退出状态:

date &> /dev/null
echo $?

该 date 命令成功完成,并且退出代码为 0。

如果尝试ls在不存在的目录上运行,则退出代码将为非零:

ls /nonexisting_dir &> /dev/null
echo $?

结果输出 2。

状态代码可用于找出命令失败的原因。每个命令的手册页,都包含有关退出代码的信息。

当执行多命令管道时,管道的退出状态为最后一条命令的退出状态

sudo tcpdump -n -l | tee file.out
echo $?

在上面的示例中,echo $?将打印 tee 命令的退出代码。

Bash exit 指令

exit命令以 N 状态退出 shell 程序。它具有以下语法:

exit N

如果N未给出,则退出状态代码是最后执行的命令的退出状态代码。

在shell脚本中使用时,作为exit命令参数提供的值将作为退出代码返回给shell。

举例说明

命令的退出状态可用于条件判断语句。在以下示例中,如果在文件 filename 内使用grep找到字符串“search-string”,则将以 0 退出(这在shell脚本中为true):

8316036e41639c830183c43b97537104.png

运行以&&(AND)或||(OR)分隔的命令列表时,命令的退出状态确定是否将执行列表中的下一个命令。此处,mkdir 仅在cd返回 0 时才执行命令:

cd /opt/code && mkdir project

如果脚本结尾exit没有指定参数,则脚本退出代码是脚本中最后执行的命令的退出代码。

#!/bin/bash

echo "doing stuff..."

exit

仅仅使用 exit,相当于调用 exit $?。或者你也可以省略 exit。

下面是显示非脚本用户调用脚本时如何终止脚本的示例:

3b6febf97dd801efd4981212af41658f.png

如果您以root用户身份运行脚本,则退出代码将为零。否则,脚本将以status退出1

写在最后

每个 shell 命令终止时,都会返回退出码,在 bash 脚本中你可以灵活地使用,并控制程序流程。

Happy coding :_)

我是 @程序员小助手 ,持续分享编程知识,欢迎关注。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值