我必须在底部作为脚本中的特定用户启动命令。参数$ 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不会将其识别为参数
答案 0 :(得分:1)
只需在$vmargs
附近加上单引号即可。它仍然会被扩展,因为整个事情都是双引号。
su synesty -c "screen -dmS appscreen ./eclipse -vmargs -DAPP_ENV=$automatey_note '$vmargs'"
答案 1 :(得分:1)
如果你想将$vmargs
传递给su synesty
不变,请“逃避”将保留字符串的美元: -
su synesty -c "screen -dmS appscreen ./eclipse -vmargs -DAPP_ENV=$automatey_note \$vmargs"