我有一个调用许多命令的Bash shell脚本.如果任何命令返回非零值,我希望shell脚本自动退出,返回值为1.
如果没有明确检查每个命令的结果,这可能吗?
例如
dosomething1
if [[ $? -ne 0 ]]; then
exit 1
fi
dosomething2
if [[ $? -ne 0 ]]; then
exit 1
fi
Run Code Online (Sandbox Code Playgroud) 我在jenkins中设置了一个部署过程,该过程首先将整个JavaScript应用程序本地安装在jenkins服务器上,开始进行测试/构建应用程序,然后将所有内容复制到暂存机上。
昨天我注意到我的package.json中有一个错字,npm无法安装更新的模块,因此引发了警告。
Jenkins似乎已经注意到了该问题,并将构建标记为UNSTABLE,但仍继续进行部署(使用ssh-copy插件的构建后任务)。
NPM无法安装模块时,有没有办法停止构建过程?
一段时间对此感到困惑,这里是一个代表问题的精炼脚本:
#start
# note that master does not exist, so this should fail, would like to exit on the next line
git branch -D master || (echo "no master branch" && exit 1);
git fetch origin &&
git checkout master &&
BRANCH=$(git rev-parse --abbrev-ref HEAD)
if [[ "$BRANCH" != "master" ]]; then
echo 'Aborting script because you are not on the right git branch (master).';
exit 1;
fi
echo "done"
#end
Run Code Online (Sandbox Code Playgroud)
当我运行上面的脚本时,我得到以下输出:
error: branch 'master' not found.
no master branch …Run Code Online (Sandbox Code Playgroud)