在 bash 脚本中获取 tcpdump 的 PID

在 bash 脚本中获取 tcpdump 的 PID

tcpdump我正在尝试获取属于 while 循环一部分的 PID 。例子:

tcpdump -x -q -l -i $IFACE port $PORT | while read buffer; do
   # process, if something received from tcpdump. Otherwise wait
done

$!while 循环内不会提供 的 PID tcpdump

tcpdump如何获取此构造中的 PID ?

答案1

如果您想运行该命令并稍后有条件地退出,您可以在单独的 shell 中运行它:

bash -c 'tcpdump -xli eth0 | while read buffer; do
      if true; then exit; fi
    done'

相关内容