呼叫此檢查:
- echo "Everything works fine until now."
- >
if ssh user@$TEST_SERVER '[ -d $BUILD_DIR ]'; then
echo "Directory exists, continuing."
else
ssh user@$TEST_SERVER 'mkdir -p $BUILD_DIR'
fi
- scp some_script.sh user@$TEST_SERVER:$BUILD_DIR/
- echo "I do not even get executed; previous line fails..."
在輸出中,我可以看到“目錄存在,繼續”。句子:作業繼續進行,就好像該目錄存在于遠程服務器中一樣,然后scp啟動帶有命令的行,無法將腳本檔案復制到不存在的目錄中。
當我從我的機器上進行檢查時,啟動相同的命令,我得到一個退出代碼 1:
$ ssh [email protected] '[ -d /var/www/build_1 ]'
$ echo $?
1
里面有什么問題?
uj5u.com熱心網友回復:
'[ -d $BUILD_DIR ]'
在單引號內,BUILD_DIR未在遙控器上設定,因此它擴展為空,擴展為[ -d ] --d不是空字串,因此[成功退出。
你要:
"[ -d $BUILD_DIR ]"
或者更好:
"[ -d $(printf "%q" "$BUILD_DIR") ]"
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/445466.html
