これは私が試したものです:bashコマンドで文字列をPerlでエコーする方法は?
my $s = "s" x 1000;
my $r = `echo $s |more`;
しかし、それは動作しません、私のプログラムが直接出て...
これは私が試したものです:bashコマンドで文字列をPerlでエコーする方法は?
my $s = "s" x 1000;
my $r = `echo $s |more`;
しかし、それは動作しません、私のプログラムが直接出て...
$r
を印刷しないため、この例では機能しません。出力は変数$r
に取り込まれます。 system()
を代わりに使用すると、出力がSTDOUTに出力されているのを確認できますが、期待どおりの出力を使用することはできません。
ちょうど行います
print $r;
更新: "エコー" は、すでにあなたに改行を与えるので、私は、print
にsay
を変更しました。
コメントで述べたように、シェルのメタ文字をエスケープするには、あなたがquotemeta.
を使用することができますまた、変数にシェルからの出力をキャプチャする場合| more
は効果がありませんことを認識する必要があります。このプロセスは単純に:echo | more | $r
で、more
をスキップすることもできます。
bashに渡すときに文字列をエスケープする方法は? – lexer
[quotemeta](http://perldoc.perl.org/functions/quotemeta.html)を使用できます。何を探すべきか分かっていれば、あなたは自分自身からエスケープすることができます。 – TLP