1

次のような Wi-Fi トラフィックをキャプチャできる単純な bash ファイルを作成しようとしています。

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

シェル構文 (リダイレクト演算子、パイプなど) は単語展開の前に解析されるため、出力リダイレクトは引数として に渡されます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 に答える