exit和return无法退出
前言
最近写脚本时发现一个问题exit
和return
无法退出脚本和函数,具体情况如下
[ $os_version == "uos" ] || (echo ok ; exit 1)
不管是通过exit
还是return
都会继续往下执行无法推出脚本和函数
正文
通过各种尝试和google最终发现问题所在
对return和exit的理解不正确,return和exit应该是返回/退出当前进程。() 会生产一个子进程,这时候return和exit返回/退出的时子进程
还需注意管道命令"|"符号左右两边也是分别起一个子进程运行命令
解决办法
修改逻辑使用 {} 代替 ()
[ $os_version == "uos" ] || {echo ok ; exit 1)}
特此记录