1. ホーム
  2. perl

[解決済み] Perl で bash コマンドを使用して文字列をエコーするにはどうすればよいですか?

2022-02-10 12:34:14

質問

これは私が試したことです。

my $s = "s" x 1000;
my $r = `echo $s |more`;

しかし、うまくいかず、プログラムが直接終了してしまいます...。

どうすればいいですか?

あなたの例ではうまくいきません。 $r . その出力は、変数 $r . を使うことで system() 代わりに、STDOUTに出力されるのを見ることができますが、その後、(おそらく)期待したように出力を使用することはできません。

するだけです。

print $r;

更新: say から print というのは、"echo" はすでに改行を与えているからです。

コメントにもあるように、シェルメタ文字をエスケープするには quotemetaです。

また、以下の点にも注意が必要です。 | more は、シェルからの出力を変数に取り込む際には何の効果もありません。処理は単純に echo | more | $r をスキップすることができます。 more .