【发布时间】:2020-04-30 10:40:56
【问题描述】:
我想用exec 命令在bash 中启动一个应用程序。问题是启动应用程序的命令使用引号,并且不能包含重复的空格。
所以我尝试了以下代码:
START_CMD="java -jar DockerProcessWrapper.jar -execute \"java -Dlog4j.configurationFile=log4j.xml -jar server.jar\" -shutdown stop"
exec $(echo "$START_CMD" | tr -s " ")
这不起作用,应用程序抛出以下错误:
org.kohsuke.args4j.CmdLineException: "-Dlog4j.configurationFile=log4j.xml" is not a valid option
我认为命令中的引号有问题。 但是如果我自己执行给定的命令,它就可以工作。我该如何解决?
【问题讨论】:
-
使用参数数组而不是字符串。
-
你是什么意思?你能举个例子吗?