STDINファイル記述子から読み込もうとしていました/dev/fd/0
これは私が書いたものです。コマンド シェルで入力したすべてのコマンドを出力したいだけです。私はこれをPerlで書きましたが、十分ではありません:
#!/usr/bin/perl
use strict;
use warnings;
open my $fh, "<", "/dev/fd/0" or die "bububububu";
while (<$fh>) {
print $_."\n";
}
close $fh;
そのため、スタックしても何も印刷されません。やり方知ってる人いる???これが不可能な場合は、すべてのコマンドをファイルに入れて、「0」ファイル ハンドルから何らかの方法で読み取ることができます。システムを通過するすべてのコマンドをキャプチャしたいだけです。
サンプルファイル:
#!/usr/bin/perl
use strict;
use warnings;
system("./.file2");
そして file2 は次のとおりです。
echo this is hard!!!
だから私は自分のプログラムに最初のファイルを実行させたいと思っています。'0' ファイルハンドルを読み取るとき、何らかの方法ですべての行を配列に格納したいと考えています。
主な編集:あなたは私を誤解していると思います。STDIN とその仕組みについて知っています。問題は、STDIN からの入力のためにスクリプトを読み取らせたくないということです。シェル プロンプトに入力した内容からスクリプトを読み取りたい。ファイルを実行し、別のターミナルを開き、ターミナルにコマンドを入力するとします。スクリプトでこれらの行を認識し、配列に保存する必要があります。