我编写了一个bash脚本来在后台运行服务并从脚本退出到命令行.但是在运行eval命令之后,控件不会进入下一个语句.
COMMAND="nohup java -jar jenkins.war"
echo "starting service"
eval $COMMAND
echo "service running"
exit
Run Code Online (Sandbox Code Playgroud)
echo"服务运行"并且退出永远不会发生.我想在后台运行该进程,并在服务仍在运行时返回到命令提示符.我该怎么做呢?
gni*_*urf 12
请不要将带有参数的命令放在字符串中.将您的命令及其参数放在一个数组中(并且不要使用大写的变量名,这是一个非常糟糕的做法),并且不要使用eval
.eval
是邪恶的!
command=( nohup java -jar jenkins.war )
echo "starting service"
"${command[@]}" 2> /dev/null &
echo "service running"
Run Code Online (Sandbox Code Playgroud)
的&
是在后台运行的命令.