我必须作为脚本中的特定用户在底部启动命令。参数$vmargs需要用单引号('$vmargs')括起来。我被困在这里是因为它总是被解析。
vmargs参数中有一些java选项。

 su synesty -c "screen -dmS appscreen ./eclipse -vmargs
                -DAPP_ENV=$automatey_note  $vmargs"

希望有人能帮忙。
更新:很抱歉我看到我的问题不清楚。参数必须求解。
 '-DencryptorCredentials=currentPass|oldPass|1 -Xms512m -Xmx2048m
 -DLOGGING_HOME=configuration/ -Djava.io.tmpdir=/tmp -Dorg.osgi.service.http.port=8081
 -Declipse.ignoreApp=true -Dosgi.noShutdown=true -Xdebug
 -Xnoagent
 -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=n
 -Djava.net.preferIPv4Stack=true -DapplyDbMigrations=true -XX:MaxPermSize=128m
 -XX:-HeapDumpOnOutOfMemoryError '

这就是问题所在,我需要单引号,否则shell将无法将其识别为参数

最佳答案

只需在$vmargs周围加上单引号。因为整件事都是用双引号引起来的,所以它还会扩大。

su synesty -c "screen -dmS appscreen ./eclipse -vmargs -DAPP_ENV=$automatey_note '$vmargs'"

10-08 07:11