이벤트 기반 출력 후 명령 실행

이벤트 기반 출력 후 명령 실행

비슷한 명령이 있습니다

활동

또는

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)

이렇게 하면 파이프 사용으로 인한 암시적 하위 쉘 효과가 방지됩니다.

답변2

무슨 말인지 잘 모르겠지만, 이 방향에 뭔가가 있나요?

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

관련 정보