是否可以使用bash或expect脚本同时或逐个运行两个程序?

是否可以使用bash或expect脚本同时或逐个运行两个程序?,bash,scripting,expect,wireshark,tcpdump,Bash,Scripting,Expect,Wireshark,Tcpdump,我基本上有两行代码,它们是: tcpdump -i eth0 -s 65535 -w - >/tmp/Captures tshark -i /tmp/Captures -T pdml >results.xml 如果我在不同的终端上运行它们,效果很好 然而,我一直在尝试创建一个简单的bash脚本,该脚本将同时执行它们,但没有成功。Bash脚本如下所示: #! /bin/bash tcpdump -i eth0 -s 65535 -w - >/tmp/Captures &

我基本上有两行代码,它们是:

tcpdump -i eth0 -s 65535 -w - >/tmp/Captures

tshark -i /tmp/Captures -T pdml >results.xml
如果我在不同的终端上运行它们,效果很好

然而,我一直在尝试创建一个简单的bash脚本,该脚本将同时执行它们,但没有成功。Bash脚本如下所示:

#! /bin/bash
tcpdump -i eth0 -s 65535 -w - >/tmp/Captures &

tshark -i /tmp/Captures -T pdml >results.xml &
如果有人可以帮助实现此功能,或者让它“运行tcpdump直到按下一个键,然后运行tshark。然后当再次按下一个键时,关闭”


我只有一点bash脚本编写经验

是否需要分别运行tcpdump和tshark?使用管道命令将tcpdump的输出馈送到tshark的输入

tcpdump -i eth0 -s 65535 | tshark -T -pdml > results.xml 

因此,为什么要运行
tcpdump
?只需允许
tshark
进行捕获并格式化输出…感谢您的回复。那真是太棒了!真不敢相信我居然没想到。还感谢twalberg的投入,但这是我正在做的一个小项目,我需要同时使用tcpdump和tshark.:)