我準備了一個shell腳本來運行一個Java文件。我已經給出了Java路徑,類路徑和依賴關係。我正在執行基於條件的文件。Linux shell腳本執行掛起
以下是代碼片段。代碼正在執行,但控件不會出現提示。
CMD=""$JRE_BIN_PATH/java" $SP -cp $CP org.aditya.test.MainClass "[email protected]""
if [ "$1" == 'server' ] && [ "$2" == 'start' ]
then
$CMD &
elif [ "$1" == 'process' ]
then
$CMD &
else
$CMD
fi
命令,因爲它是使用在末端「&」掛起時if
和elif
執行。但是,如果控制權轉到其他(不包括'&')控制立即出來。我已經刪除'&',一切正常。我的問題是,CMD結束時'&'的用法是什麼。它爲什麼會導致問題。
'CMD =「」$ JRE_BIN_PATH/java「$ SP -cp $ CP org.aditya.test.MainClass」$ @「」' - 在shell中引用並不像你認爲的那樣工作,那些多餘的雙引號aren不要把它變成CMD的值 – davmac
可能的重複[在bash中,爲什麼shell命令在參數作爲變量傳遞給參數時忽略參數中的引號?](http://stackoverflow.com/questions/12136948/in-bash-why-do-shell-commands-ignore-quotes-in-arguments-when-the-arguments-are) – tripleee
也http://mywiki.wooledge.org/BashFAQ/050 – tripleee