千家信息网

Shell中exit 0坑实例分析

发表于:2025-02-24 作者:千家信息网编辑
千家信息网最后更新 2025年02月24日,这篇文章主要讲解了"Shell中exit 0坑实例分析",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Shell中exit 0坑实例分析"吧!在 she
千家信息网最后更新 2025年02月24日Shell中exit 0坑实例分析

这篇文章主要讲解了"Shell中exit 0坑实例分析",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Shell中exit 0坑实例分析"吧!

在 shell 编程中,需慎用 exit 0!

首先必须弄清楚 exit 0 不是 return 0, 区别在于 return 0 用于函数中,表示函数执行成功返回 0;而 exit 0 则代表你当前程序执行成功并且会直接退出当前所执行的脚本或者程序,相反,return -1 一般表示函数执行失败返回错误; exit 1 (或大于 1)表示程序执行失败并退出程序。exit 用来返回进程结束时的状态,一般在父shell中使用 $? 变量来获取子shell 的退出状态,判断子shell是否执行成功。

虽然两者区别很明显,也很容易理解,为什么专门要做一下记录?确实出现了这样的一个错误,本应是在子shell中执行使用 exit 0 和 exit 1 的函数接口,父shell对其进程返回值 { $? } 做判断操作,结果有人直接在环境脚本中加了该函数接口做判断,结果直接导致环境部署失败,显然,悲剧了。。。哈哈,所以想着写篇博客记录一下

注:在接口函数中使用 return,在需要退出执行(子 shell)程序时使用 exit举个小例

#/bin/bashfunction check_extern_input(){    read param    if [ "${param}" == "exit 0" ]    then        echo "successful exit process right now!"        exit 0    elif [ "${param}" == "exit 1" ]    then        echo "failed exit process right now!"        exit 1    elif [ "${param}" == "return 0" ]    then        echo "func normal return, process not exit, Enter go on..."        return 0    else        echo "Input again:"    fi        }while true do    check_extern_inputdone

在使用不熟悉的 shell 命令或者语法之前,最好先写个脚本验证后使用,形成自测的好习惯!

ps:shell脚本中exit0和exit1的含义

exit 0:正常运行程序并退出程序;

exit 1:非正常运行导致退出程序;

exit 0 可以告知你的程序的使用者:你的程序是正常结束的。如果 exit 非 0 值,那么你的程序的使用者通常会认为
你的程序产生了一个错误。
在 shell 中调用完你的程序之后,用 echo $? 命令就可以看到你的程序的 exit 值。在 shell 脚本中,通常会根据
上一个命令的 $? 值来进行一些流程控制。0代表程序正确的执行,如下图例子所示:

感谢各位的阅读,以上就是"Shell中exit 0坑实例分析"的内容了,经过本文的学习后,相信大家对Shell中exit 0坑实例分析这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

程序 函数 脚本 实例 实例分析 分析 成功 命令 接口 错误 学习 代表 使用者 内容 常会 状态 环境 结果 进程 运行 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 龙岗网络技术有限公司 怎么给华为服务器装网卡 国家网络安全局权利大吗 哪个公司做网络安全 结构化数据库管理系统技术指标 梦幻手游五指山服务器 魔兽怀旧服务器黑翼之巢法师装备 调研西安汇科网络技术有限公司 饥荒进入服务器保存存档 后台网络安全系统 网络安全攻击方式 网络安全要树立正确的什么观 数据库按时间分类 登录sftp服务器 关于网络安全的手绘铅笔画 网络技术管理培训心得体会 excel追加数据库 四川手机直播app软件开发 华为的软件开发工程师工资 特为科技软件开发营销策划 数据库考试怎么准备什么 网络安全知识图谱 数据库怎么给表别名 濮阳市公安局网络安全 计算机网络技术的试题及答案 你还知道哪些网络安全小知识 体验服的服务器什么时候修好 猎豹加速器连接谷歌服务器 温州多功能仓库管理软件开发 计算机网络技术可分为哪几种
0