我必须从脚本中的特定用户开始在底部启动命令。参数$ 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 '
那就是这些东西,我需要单个引号,否则壳不会将其识别为参数
只是在 $vmargs
周围放单引号。它仍然会扩展,因为整个过程都是双向的。
su synesty -c "screen -dmS appscreen ./eclipse -vmargs -DAPP_ENV=$automatey_note '$vmargs'"
如果要将 $vmargs
传递给 su synesty
毫不变化,则"逃脱"将保留字符串as-is的美元: -
su synesty -c "screen -dmS appscreen ./eclipse -vmargs -DAPP_ENV=$automatey_note $vmargs"