java – 使用xargs在命令中间传递多个参数

有没有办法使用xargs在命令中间传递多个参数?

例如,我有一个文件javaoptions.txt,它包含一组默认的Java选项.我希望能够做类似的事情

xargs -I%java%ClassName< javaoptions.txt 并让它将所有选项传递给一个命令.但是,如果我尝试这样做,它会使用几个命令,每次都传递一个选项. 对于它的价值,我无法修改正在执行的源代码

解决方法:

如果我理解正确,您只需要将javaoptions.txt的内容插入到java命令中.如果是这样,xargs没有帮助.这是为了在另一个命令的每一行输出上运行相同的命令.你需要的只是

java $(cat javaoptions.txt) ClassName

但就个人而言,我会为此编写一个函数:

runJava(){
   javaOpts="-Xmx4g -Djava.io.tmpdir=/tmp/foo" ## random example
   java $javaOpts "$@"  ## run the java command with the options    
} 

将它添加到你的〜/ .bashrc(或你的shell的等价物),你可以运行:

runJava Classname

跑步

java -Xmx4g -Djava.io.tmpdir=/tmp/foo Classname
上一篇:文件查找


下一篇:bash – 谁在吃数据? xargs的?