Java

使用 xargs 在命令中間傳遞多個參數

  • April 15, 2016

有沒有辦法在使用 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

引用自:https://unix.stackexchange.com/questions/276452