Java Bash脚本读取文件并执行命令
我想要一个bash脚本,它从文件中读取java参数并用它们执行javaJava Bash脚本读取文件并执行命令,java,bash,file,Java,Bash,File,我想要一个bash脚本,它从文件中读取java参数并用它们执行java jvm_arguments=$(cat jvm-args) exec java $jvm_arguments 问题在于,它不能很好地处理此jvm args文件: -Xms128m -Xmx512m -Dhostname=$(hostname) 未执行并替换命令主机名 如何执行hostname命令?因此,我得到: exec java -Xms128m -Xmx512m -Dhostname=MyMachine 谢谢。使用
jvm_arguments=$(cat jvm-args)
exec java $jvm_arguments
问题在于,它不能很好地处理此jvm args文件:
-Xms128m -Xmx512m -Dhostname=$(hostname)
未执行并替换命令主机名
如何执行hostname命令?因此,我得到:
exec java -Xms128m -Xmx512m -Dhostname=MyMachine
谢谢。使用eval来评估运行时变量。像这样(未测试):
将整个命令存储在文件中,例如,
run.sh
exec java -Xms128m -Xmx512m -Dhostname=$(hostname) ...
如果要终止当前的
bash
进程,请使用调用。run.sh
如果仅使用bash,jvm\u arguments=$(
将导致shell读取该文件,而不需要另一个cat进程。请注意这一点。bash不自动执行此类操作的原因是:它可能是一个巨大的安全漏洞。InetAddress.getLocalHost().getHostName()
可能是另一个解决方案()
exec java -Xms128m -Xmx512m -Dhostname=$(hostname) ...