Basta enviá-los para o seu shell:
$ printf 'echo foo\necho bar\n' | bash
foo
bar
Como eu executo comandos que imprimo na saída padrão usando o awk, por exemplo, eu uso o awk para imprimir:
grep -B100 some file1.tcl
grep -B100 some file2.tcl
Em seguida, armazene-o em um arquivo .sh e, em seguida, crie o arquivo. É possível canalizá-lo para algum lugar para que os comandos sejam executados?
awk '{print xx}' | pipeline
Basta enviá-los para o seu shell:
$ printf 'echo foo\necho bar\n' | bash
foo
bar
Para algo mais avançado que um comando simples (e comandos simples também, é claro):
eval "$( awk ... )"
Isso executaria o código no ambiente do shell atual e, portanto, o código também poderia definir och modify variables em seu shell.
No entanto, como obviamente você está querendo analisar outros arquivos usando grep
, por que não que com o mesmo programa awk
? ... ou com outro programa awk
que lê padrões e nomes de arquivos?
Você nem precisa canalizá-lo, já que você já está vivendo perigosamente; apenas execute seu comando que sempre sempre exibe comandos seguros para executar em uma construção de expansão de subshell:
$ $( awk 'BEGIN { print "echo hello" }' )
hello