Passando vários argumentos no meio do comando com xargs

2

Existe uma maneira de passar vários argumentos no meio de um comando usando xargs?

Por exemplo, eu tenho um arquivo javaoptions.txt que contém um conjunto padrão de opções Java. Eu gostaria de poder fazer algo como

xargs -I % java % ClassName < javaoptions.txt

e tem que passar todas as opções para um comando. Se eu tentar fazer isso, no entanto, ele usa vários comandos, passando uma opção a cada vez.

Por que vale a pena, não posso modificar o código-fonte que está sendo executado

    
por user1207177 14.04.2016 / 15:40

1 resposta

4

Se eu entendi corretamente, você só quer inserir o conteúdo de javaoptions.txt em seu comando java. Se assim for, xargs não é de ajuda. Isso é para executar o mesmo comando em cada linha de saída de outro comando. Tudo que você precisa aqui é

java $(cat javaoptions.txt) ClassName

Pessoalmente, no entanto, eu escreveria uma função para isso:

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

Adicione isso ao seu ~/.bashrc (ou equivalente para o seu shell) e você pode executar:

runJava Classname

Para executar

java -Xmx4g -Djava.io.tmpdir=/tmp/foo Classname
    
por 14.04.2016 / 15:52

Tags