我准备了一个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