我想编写脚本,通过Jenkins服务器在远程服务器上执行cap命令。
ssh -q $username@$server << EOF
cd $CT_PATH && cap -q -s instance=$instance mode=quiet diagnostics:all;
我试过这个剧本:
echo "command : $? - Successful"
if [[ $? != 0 ]]; then
exit 1
else
echo " continuing next commands"
ls -l
fi
成功执行。但是如果它失败了,那么脚本会查看另一个命令,但是如果它失败了我想停在那里,这意味着脚本不会被进一步执行。
答案 0 :(得分:0)
您可能需要set -e
,这将使脚本在第一次失败未经检查(即不属于if the_command; then
)命令时中止,而您的第一个heredoc标记可能应为'EOF'
EOF
的{{1}},除非您希望在主机的上下文中插入heredoc(如果真的需要EOF
,那么您将不得不逃避$
-expansions应该在目标主机上评估):
ssh -q "$username@$server" <<'EOF'
set -e
cd $CT_PATH #if this or anything else that's unchecked fails, the script will abort because of set -e
cap -q -s instance=$instance mode=quiet diagnostics:all;
#...
EOF