我有一个master.sh脚本调用其他2个脚本
#!/bin/bash
/home/script1
/home/script2
Run Code Online (Sandbox Code Playgroud)
script1具有以下条件:
if [ $len -lt 10 ]; then
echo "mask is not 10"
exit
fi
Run Code Online (Sandbox Code Playgroud)
如果脚本一出现退出条件,如何告诉master.sh不要继续执行脚本2?换句话说,如果$ len不是10,则停止执行后续脚本
标准方法是在出错时以非零退出状态退出:
if (( len < 10 )) ; then
echo Mask is not at least 10. >&2
exit 1
fi
Run Code Online (Sandbox Code Playgroud)
然后,您只需检查退出代码:
/home/script1 && /home/script2
Run Code Online (Sandbox Code Playgroud)
如果有几件事可能出错并且你想对失败作出反应,你可以退出各种退出代码,并在父母用$?检查它们:
/home/script1
case $? in
0) /home/script2 ;;
1) echo 'Fatal problem' ;;
2) echo 'Missing file' ;;
# etc.
esac
Run Code Online (Sandbox Code Playgroud)
对于非标准情况,我会捕获输出:
[[ $(/home/script1) == 'mask is not 10' ]] && exit
/home/script2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32 次 |
| 最近记录: |