Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Bash脚本读取文件并执行命令_Java_Bash_File - Fatal编程技术网

Java Bash脚本读取文件并执行命令

Java 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 谢谢。使用

我想要一个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

谢谢。

使用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) ...