2017-07-17 11 views
0

我想編寫腳本以通過Jenkins服務器在遠程服務器中執行cap命令。我們如何檢查以前的命令或腳本是否通過shell腳本在遠程服務器中執行成功

ssh -q [email protected]$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

你可能想set -e,這將使該腳本中止第一失敗選中(即不if the_command; then的一部分)的命令,並在首定界符標記也許應該'EOF'而不是EOF,除非你想在插入的定界符你是從SSH-ING主機的情況下(如果真的想EOF,那麼你將不得不逃離$ -expansions應該在目標主機上進行評估):

ssh -q "[email protected]$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 
+0

多謝@PSkocik這一招對我來說工作得很好。 – Ram

+0

@Ram無需感謝。只要接受/ upvote答案,如果它爲你工作;-) – PSkocik

相關問題