运行eval命令后控制到下一个语句

use*_*061 8 bash

我编写了一个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)

&是在后台运行的命令.