exit和return无法退出
young / / shell / 阅读量

前言

最近写脚本时发现一个问题exitreturn无法退出脚本和函数,具体情况如下

[ $os_version == "uos" ] || (echo ok ; exit 1) 

不管是通过exit 还是return 都会继续往下执行无法推出脚本和函数

正文

通过各种尝试和google最终发现问题所在

对return和exit的理解不正确,return和exit应该是返回/退出当前进程。() 会生产一个子进程,这时候return和exit返回/退出的时子进程
还需注意管道命令"|"符号左右两边也是分别起一个子进程运行命令

解决办法

修改逻辑使用 {} 代替 ()

[ $os_version == "uos" ] || {echo ok ; exit 1)}

特此记录

支付宝捐赠
请使用支付宝扫一扫进行捐赠
微信捐赠
请使用微信扫一扫进行赞赏
有 0 篇文章