我们如何通过shell脚本

时间:2017-07-17 14:40:29

标签: shell

我想编写脚本,通过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

成功执行。但是如果它失败了,那么脚本会查看另一个命令,但是如果它失败了我想停在那里,这意味着脚本不会被进一步执行。

1 个答案:

答案 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