我必须作为脚本中的特定用户在底部启动命令。参数$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'"