2016-02-09 79 views
0

我試圖在執行ssh命令時捕獲錯誤信息。 下面是我的代碼的摘錄:捕獲ssh命令的錯誤信息

 #  errMsg=`ssh [email protected]$h 'mkdir -p $rmtRepo' 2>&1` 
      sh [email protected]$h "mkdir -p $rmtRepo" 
if [[ -n $errMsg ]]; then 
        echo "Unable to make the ssh connection for the host $h: $errMsg" 
       fi 

當使用註釋行,錯誤消息呼應,但mkdir命令,如果沒有錯誤失敗,下面的錯誤執行。爲什麼mkdir命令失敗?如果我沒有捕獲錯誤消息的代碼,mkdir命令會成功執行。請建議如何在沒有錯誤情況下執行make命令並在同一時間捕獲錯誤? mkdir:缺失操作數 嘗試使用`mkdir --help'獲取更多信息。

回答

1

比方說,例如你在製作目錄時出錯。

您可以通過查看目錄是否存在來檢查它。

if [ ! -d "$DIRECTORY" ]; then 
    # you can echo some error message here 
    exit 1 #to terminate execution of code 
fi 

的這裏的一點是,如果你對上面的代碼錯誤,你不能得到下面的代碼錯誤消息,因爲它會自動終止一旦得了一些早期的錯誤。