exit0 exit1 的区别
exit(0):正常运行程序并退出程序;
exit(1):非正常运行导致退出程序;
exit 0 可以告知你的程序的使用者:你的程序是正常结束的。如果 exit 非 0 值,那么你的程序的使用者通常会认为你的程序产生了一个错误。
在 shell 中调用完你的程序之后,用 echo $? 命令就可以看到你的程序的 exit 值。在 shell 脚本中,通常会根据上一个命令的 $? 值来进行一些流程控制。
if else的用法
if else的简化版本
首先写一下在.sh文件中常用的语法,也就是if else的简化版本。
最常用的if简化就是使用&& 和||表示。
- && :表示如果符号&&前面表达式为真,则执行&&符号后面的表达式。
#检查/var/run/dhcpd.pid文件是否存在,如果存在就删掉
#-f表示文件存在
[ -f /var/run/dhcpd.pid ] && rm /var/run/dhcpd.pid
- ||:表示如果符号||前面表达式为假,则执行||符号后面的表达式。
#检验文件/usr/sbin/dhcpd是否存在,如果不存在就退出
[ -f /usr/sbin/dhcpd ] || exit 0
- 使用if简化 和$1,$2,$3来检测参数,不合理就调用help。
#如果第一个参数不存在(-z 字符串长度为0 )
[ -z "$1" ] && help
#如果第一个参数是-h,就显示help
[ "$1" = "-h" ] && help
#上述等号=两边要有空格才表示=是等号
条件表示式
常用内容
if [ -f file ] :如果文件存在
if [ -d … ] :如果目录存在
if [ -s file ] :如果文件存在且非空
if [ -r file ] :如果文件存在且可读
if [ -w file ] :如果文件存在且可写
if [ -x file ] : 如果文件存在且可执行
Attention:整数条件表达式,大于,小于,shell里没有> 和< ,会被当作尖括号,只有-ge,-gt,-le,lt!!!条件表达式一定要有fi结尾!!!
参考链接
感谢原博主们的辛勤工作和贡献。
https://blog.csdn.net/w1418899532/article/details/89737687
https://blog.csdn.net/super_gnu/article/details/77099395