我试图从 STDIN 文件描述符中读取/dev/fd/0
这就是我写的,我只想打印我在命令 shell 上输入的每个命令。我用 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”文件句柄时,我希望以某种方式将所有运行的行存储在一个数组中。
主要编辑:我认为你误解了我。我知道标准输入及其工作原理。问题是我不希望从标准输入中读取脚本。我希望从我在 shell 提示中输入的内容中读取脚本。假设我运行文件,然后打开另一个终端,然后在终端中键入命令。我希望脚本能够识别这些行并将它们保存在一个数组中。