0

我必须以脚本中的特定用户身份启动底部的命令。参数 $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 不会将其识别为参数

4

2 回答 2

1

只需将单引号放在$vmargs. 它仍将被扩展,因为整个内容都在双引号中。

su synesty -c "screen -dmS appscreen ./eclipse -vmargs -DAPP_ENV=$automatey_note '$vmargs'"
于 2012-10-30T12:54:01.530 回答
1

如果您想传递$vmargssu synesty未更改的内容,请“转义”将按原样保留字符串的美元:-

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

于 2012-10-30T12:54:18.513 回答