Bash
在基於事件的輸出之後執行命令
有類似的命令
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)