
hay comandos como
yo evento
o
tcpdump -n host src xxxx
que envían a la salida estándar algunas líneas cuando sucede algo. ¿Existe alguna forma de ejecutar algún comando inmediatamente después de imprimir una línea? Ex:
iwevent | echo "Wireless event happened"
Respuesta1
Simplemente lea stdin en un bucle
iwevent | while IFS= read -r line; do
echo "[$(date "+%F %T")] - $line"
done
Dependiendo de lo que hagas en el cuerpo del bucle, es posible que desees
while IFS= read -r line; do
echo "[$(date "+%F %T")] - $line"
done < <(iwevent)
Eso evita los efectos de subcapa implícitos del uso de una tubería.
Respuesta2
No estoy seguro de entender lo que quieres decir, pero ¿algo en la dirección de esto?
while IFS= read -r line; do
printf "%s\n%s\n" "$line" "Yohooo! One more package."
done < <(tcpdump -i any -nS)