关闭
搜索
搜索
本版
帖子
用户
热搜:
程序员
简洁模式
高级模式
用户组: 游客
消息
提醒
新听众
我关注的
帖子
道具
勋章
任务
设置
退出
请
登录
后使用快捷导航
没有帐号?
立即注册
设为首页
收藏本站
开启辅助访问
切换到窄版
登录
or
立即注册
快捷导航
搜索
首页
论坛
BBS
MCU单片机技术
程序员交流
3分钟短文|Linux命令正确的退出方式:exit0
[复制链接]
作者:
宁死不
版块:
›
嵌入式操作系统
›
linux
发布时间:
2020-6-10 06:59:44
1255
0
返回列表
宁死不
当前离线
注册会员
注册会员, 积分 155, 距离下一级还需 45 积分
注册会员
注册会员, 积分 155, 距离下一级还需 45 积分
积分
155
发消息
楼主
电梯直达
宁死不
发表于 2020-6-10 06:59:44
|
只看该作者
|
倒序浏览
|
阅读模式
引言
通常,在编写Bash脚本时,需要在满足特定条件时终止脚本,或者根据命令的退出代码采取措施。
在本文中,我们将介绍Bash exit内置命令和已执行命令的退出状态。
退出状态
每个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):
运行以&&(AND)或||(OR)分隔的命令列表时,命令的退出状态确定是否将执行列表中的下一个命令。此处,mkdir 仅在cd返回 0 时才执行命令:
cd /opt/code && mkdir project
如果脚本结尾exit没有指定参数,则脚本退出代码是脚本中最后执行的命令的退出代码。
#!/bin/bash echo "doing stuff..." exit
仅仅使用 exit,相当于调用 exit $?。或者你也可以省略 exit。
下面是显示非脚本用户调用脚本时如何终止脚本的示例:
如果您以root用户身份运行脚本,则退出代码将为零。否则,脚本将以status退出1。
写在最后
每个 shell 命令终止时,都会返回退出码,在 bash 脚本中你可以灵活地使用,并控制程序流程。
Happy coding :_)
我是 @程序员小助手 ,持续分享编程知识,欢迎关注。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有帐号?
立即注册
收藏
0
相关帖子
•
几个高逼格Linux命令
•
我的15年操作系统开源路——RT-Thread创始人熊谱翔
•
超级干货:3个性能监控和优化命令详解
•
不容错过的15个Linux实用技巧
•
华为鸿蒙(python程序员)总结的一整套python学习路线,内含python学习视频 ...
•
Shell:用户使用Linux的桥梁
•
Rust引入Linux内核开发?Google:支持!
•
Linux查看环境变量当前信息和查看命令
•
Linux操作系统应用试题
•
DBA常用Linux命令
回复
使用道具
举报
返回列表
高级模式
B
Color
Image
Link
Quote
Code
表情
@朋友
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
招聘&找工作
硬件综合
快速回复
返回顶部
返回列表