Bash

在基於事件的輸出之後執行命令

  • October 10, 2013

有類似的命令

iwevent

或者

tcpdump -n src 主機 xxxx

當發生某些事情時,它會向標準輸出發送一些行。列印一行後是否有任何形式的立即執行某些命令。前任:

iwevent | echo "Wireless event happened"

只需循環讀取標準輸入

iwevent | while IFS= read -r line; do
   echo "[$(date "+%F %T")] - $line"
done

根據您在循環體中所做的事情,您可能想要

while IFS= read -r line; do
   echo "[$(date "+%F %T")] - $line"
done < <(iwevent)

這避免了使用管道的隱含子殼效應。

不知道我明白你的意思,但在這個方向上的東西?

while IFS= read -r line; do
   printf "%s\n%s\n" "$line" "Yohooo! One more package."
done < <(tcpdump -i any -nS)

引用自:https://unix.stackexchange.com/questions/94531