基於事件的輸出後運行命令

基於事件的輸出後運行命令

有類似的命令

活動

或者

tcpdump -n src 主機 xxxx

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

iwevent | echo "Wireless event happened"

答案1

只需循環讀取 stdin

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)

這避免了使用管道的隱式子 shell 效應。

答案2

不確定我明白你的意思,但有朝這個方向的東西嗎?

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

相關內容