区别"/>
shell编程中break、continue、exit、return的用法及区别
首先看个例子:
for
((i=1;i<5;i++ ))
do
if
[ $i -eq 3 ]
then
# break
# continue
# exit
fi
echo $i
done
echo OK
输出的结果
break
的结果
1
2
OK
continue
的结果
1
2
4
OK
exit的结果
1
2
上面的脚本可以看出:
break 表示跳出整个循环,还会继续执行循环后面的内容。
continue 表示跳出本次循环,继续下一次循环。
exit彻底退出脚本, 退出shell程序,并返回n值。
return 表示退出当前函数 ,注意return命令不能直接用在脚本的主程序里,只能在shell函数中使用。
#!/bin/bash
dir=/root/shell
grep -e
'^ .*cp '
-e
'^cp'
$dir/* >Cp_Check.txt
if
[ ! -s Cp_Check.txt ]
then
return
0
fi
直接执行脚本是会报错的
return: can only`return' from a function or sourced script
exit与return的区别
- (1)作用不同。exit用于在程序运行的过程中随时结束程序,exit的参数是返回给OS的,注意在函数中调用exit 不是退出函数,而是直接退出执行的脚本文件。exit是结束一个进程,它将删除进程使用的内存空间,同时把错误信息返回父进程。而return是返回函数值并退出函数;
- (2)语义层级不同。return是语言级别的,它表示了调用堆栈的返回;而exit是系统调用级别的,它表示了一个进程的结束;
- (3)使用方法不用。return一般用在函数方法体内,exit可以出现在Shell脚本中的任意位置。
- (4)如果你用 脚本 a 调用 脚本b ,要在a中判断b是否正常返回,就是根据 exit 0 or 1 来识别。执行完b后, 判断 $? 就是返回值。如果shel脚本中调用的子脚本的exit,那么会退出子脚本。如果是source一个子脚本,里面的exit会导致外面的脚本也退出。
更多推荐
shell编程中break、continue、exit、return的用法及区别
发布评论