Ubuntu: Executa a saída de outro comando

7

Eu tenho uma linha de comando que gera uma linha de comando diferente, por exemplo:

> commandlineA param1 param2
  commandlineB param1

Eu gostaria de ter uma única execução de linha de comando que executará commandlineB com o (s) parâmetro (s) dado (s).

Existe alguma maneira simples de fazer isso usando uma única linha de comando ou eu preciso executar um pequeno arquivo bash que armazenará a saída em uma variável e então a executará?

Obrigado

    
por Lior Ohana 27.12.2015 / 09:45

2 respostas

9

Você parece ter resolvido isso sozinho, mas pode usar:

$(command parameter1 parameter2)

Edit: que será executado em um subshell, qualquer variável de ambiente não-exportada não será usada. Se você quer rodar um comando no mesmo shell, você precisa usar:

eval $(command parameter1 parameter2)

Outra resposta dada é canalizar o próprio bash:

echo 'uname -a' | bash 

Isso também será executado em um subshell, para rodar no mesmo shell que você irá precisar:

echo 'uname -a' | bash -c

A propósito, você também pode usar back carrapatos em vez da sintaxe $ (), mas não é recomendado .

    
por 27.12.2015 / 14:12
3

Use isto:

commandlineA param1 param2 | bash

Exemplo:

echo "uname -a" | bash

Saída:

Linux k1104 2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 03:31:50 UTC 2011 i686 i686 i386 GNU/Linux
    
por 27.12.2015 / 10:10