私はmakefileスクリプトを作ろうとしています。これは、tcpreplayコマンドと他のツールを使ってpcapファイルのパケット数を抽出します。追加のgccフラグを使用して、パケット数をテストファイルに転送します。文字列内のBash変数展開(メイクファイル)
tcpreplay = "/usr/bin/tcpreplay --topspeed --intf1=lo "${PWD}"/to/file.pcap | sed -n 5p | cut -d' ' -f11"
# get number of packet in PCAP
PKT_NUM = `eval ${tcpreplay}`
TEST_CFLAGS = -DPKT_NUM=$(PKT_NUM)
#print VAR cmd
print-% : ; @echo $* = $($*)
端末で実行すると、tcpreplayの内容が有効であっても、上記のコマンドは機能しません。
"${PWD}"/to/file.pcap
と交換する場合:
/absolute/path/to/file.pcap
期待どおりに動作します私はまた、この部分の原因となることを見出しました。
どのように$ PWDアプローチでスクリプトを修正することができますか?
'='記号の前後のスペースを削除してから、もう一度お試しください。 –
スペースを削除した後に再試行するだけでなく、結果についてもここに報告してください。 – Alfe
スペースを削除してhttp://shellcheck.netでチェック済みのコードも残っていますが、問題は残ります。 – Sach