1

次を実行すると:

system("screen -dmS $screenname");

それは正常に動作しますが、perl から画面を実行し、追加の引数を指定してコマンド (この場合は tcpreplay) を実行しようとすると、想定どおりに実行されません。

system("screen -dmS $screenname -X stuff \"`printf \"tcpreplay --intf1=eth0 s.cap\\r\"`\" ");

ここで何が間違っていますか?

4

3 に答える 3

1

single\"をに置き換えてみてください\\\"。これでうまくいくはずです。

ここで同じ問題を考えてみましょう:

system ("echo Quotation marks: \\\"here\\\" but \"not here\". ");

前のコード行からの出力は次のとおりです。引用符: "here" but not here.

于 2013-11-08T23:11:09.637 に答える
0

Simo A の回答を出発点として、私は.q( )ではなく. を使用します" "

system ( q(echo Quotation marks: \"here\" but "not here". ));

つまり、引用符を 2 回エスケープする必要はありません。

于 2013-11-09T20:55:40.010 に答える