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)} 特此记录