Este abaixo é o ponto de entrada para um script com várias entradas.
#!/bin/bash
[ $# -ge 1 -a -f "$1" ] && input="$1" || input="-"
# your script's payload here
A linha #!
é auto-explicativa, espero
na segunda linha
$# -ge 1
e está testando pelo menos um argumento de linha de comando
-a
é o booleano e operador
-f "$1"
está testando se o primeiro argumento é um arquivo
&&
é seguido pela diretiva a ser executada se a condição anterior for verdadeira
||
é seguido pelo que acontece se a condição de teste não for verdadeira
nc -k -l 127.0.0.1 4444 > filename.out
my_processing_script filename.out
-ou -
nc -k -l 127.0.0.1 4444 | my_processing_script
então, se eu tenho um argumento e é um arquivo, minha entrada é esse arquivo, se não, minha entrada está vindo do canal, ou seja, "-"
então você pode executar sua coisa como quiser. Qualquer um
Eu testei com payload de
awk '{print $2}' ${input}
e minha entrada vinha do comando netstat -rn
e funcionava de qualquer maneira. Eu espero que isso seja o que você está perguntando sobre