Insere o resultado do comando em um executável (um comando) [duplicado]

2

É possível inserir o resultado de um comando (ou até mesmo uma cadeia de comandos) em um executável em um comando? Algo parecido com isto:

./a.out < echo 0

Ou é necessário fazer isso:

echo 0 > input.txt
./a.out < input.txt
    
por Alex 28.10.2015 / 00:02

2 respostas

3

Quando você quiser que o programa a.out leia a saída do comando echo 0 como sua entrada, você pode fazer assim:

echo 0 | ./a.out

Ou (isso é bash specific):

./a.out < <(echo 0)

Este > e este < são operadores de redirecionamento, > é o redirecionamento da saída e < da entrada.

Isto:

echo 0 > input.txt

Redireciona a saída de echo para um arquivo chamado input.txt

Isto:

./a.out < input.txt

Redireciona a entrada de ./a.out ; a fonte é o conteúdo de input.txt .

Para vários comandos, use comandos compostos :

{ echo 0; cat test.txt; } | ./a.out
    
por 28.10.2015 / 00:09
0

Apenas para observar que existe um código mais simples (no bash):

./a.out <<<"0"

Ou até mesmo:

 <<<"0" ./a.out

Se você não se importa com a escrita "olhando para trás".

    
por 28.10.2015 / 00:55