在Shell编程中,需要谨慎使用exit0。摘要:本文主要介绍了exit0在外壳上的孔洞,并通过实例代码进行了详细介绍,具有一定的参考价值。感兴趣的朋友可以参考一下。
出口0!在shell编程中应谨慎使用。
首先必须明确,出口0不是返回0。不同的是,return 0用在函数中,表示函数执行成功,返回0;退出0表示您当前的程序执行成功,将直接退出当前执行的脚本或程序。相反,return -1一般表示函数执行失败,返回错误;退出1(或大于1)表示程序执行失败,退出程序。Exit用于返回进程结束时的状态,一般用$?在父外壳中。变量来获取子外壳的退出状态,并确定子外壳是否成功执行。
虽然两者的区别很明显,也很容易理解,但为什么需要专门做记录呢?确实存在这样的误差。它应该已经在子shell中使用exit 0和exit 1执行了函数接口,父shell返回值{$?到它的过程。}做判断操作,结果有人直接把函数接口加到环境脚本里做判断,直接导致环境部署失败。显然,这是一场悲剧。哈哈,所以想写博客记录一下。
注意:在接口函数中使用return,需要退出执行(子shell)程序时使用exit作为小例子。
#/bin/bash
函数检查外部输入()
{
读取参数
if [ '${param}'=='exit 0' ]
然后
echo '现在成功退出进程!'
出口0
elif [ '${param}'=='exit 1' ]
然后
“echo”立即退出失败!
1号出口
elif [ '${param}'=='return 0' ]
然后
echo 'func正常返回,进程不退出,回车继续.'
返回0
其他
再次回显“输入:”
船方不负担装货费用
}
虽然是真的
做
检查外部输入
完成的
在使用不熟悉的shell命令或语法之前,最好先写个脚本验证一下再用,养成自检的好习惯!
ps:shell脚本中exit0和exit1的含义
0:正常运行程序,退出程序;
退出1:异常运行导致程序退出;
Exit 0可以告诉你程序的用户你的程序正常结束了。如果exit不为0,程序的用户通常会认为
你的程序产生了一个错误。
在shell中调用您的程序后,使用echo $?命令来查看程序的退出值。在shell脚本中,它通常基于
$来自最后一个命令?某些过程控制的价值。0代表程序的正确执行,如下图所示:
关于Shell exit 0的漏洞,本文到此结束。有关Shell exit 0的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。