
existem comandos como
euwevent
ou
tcpdump -n src host xxxx
que enviam para o stdout algumas linhas quando algo acontece. Existe alguma forma de executar algum comando imediatamente após a impressão de uma linha. Ex:
iwevent | echo "Wireless event happened"
Responder1
Basta ler stdin em um loop
iwevent | while IFS= read -r line; do
echo "[$(date "+%F %T")] - $line"
done
Dependendo do que você faz no corpo do loop, você pode querer
while IFS= read -r line; do
echo "[$(date "+%F %T")] - $line"
done < <(iwevent)
Isso evita os efeitos implícitos do subshell do uso de um pipeline.
Responder2
Não tenho certeza se entendi o que você quer dizer, mas algo nesse sentido?
while IFS= read -r line; do
printf "%s\n%s\n" "$line" "Yohooo! One more package."
done < <(tcpdump -i any -nS)