Shell中exit 0坑实例分析

发布时间:2022-02-23 16:37:31 作者:iii
来源:亿速云 阅读:158

这篇文章主要讲解了“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/bash

function 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_input
done

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

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

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

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

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

Shell中exit 0坑实例分析

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

推荐阅读:
  1. 如何理解shell - 0
  2. c语言中的exit(0)是什么

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

shell

上一篇:Python的xpath数据解析案例分析

下一篇:Java中的finally一定会执行吗

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》