1

我正在尝试编写一个简单的 bash 文件,能够捕获如下所示的 Wi-Fi 流量:

STRING1="tshark -i 2 -a duration:5 -w <path of output.pcap>"
$STRING1
echo "'Wi-Fi' captured"

STRING2="tshark -r <path of output.pcap> -T fields -e frame.number -E header=y > <path of output.csv>"
echo $STRING2
$STRING2

第一个命令 STRING1 被正确处理并创建了 output.pcap。启动 STRING2 时出现错误tshark: Syntax error.。但是,如果我只是将 STRING2 命令复制并粘贴到终端中,一切正常。我在这里想念什么?

4

1 回答 1

1

Shell 语法(重定向运算符、管道等)在词扩展之前进行解析,因此您的输出重定向将作为参数传递给tshark.

STRING2="tshark -r <path of output.pcap> -T fields -e frame.number -E header=y"
echo $STRING2
$STRING2 > <path of output.csv>
于 2013-03-04T13:49:37.360 回答