如何逃脱单个报价从解析内部命令中



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

相关内容

  • 没有找到相关文章

最新更新