我有一个叫a.pl的Perl脚本,里面有类似下面的读取命令行输入值的语句:
my $device_name = <STDIN>;
如果我在b.pl脚本里,用system或是readpipe命令来粘合脚本a.pl,当运行到上面这个语句的时候,命令行会提示输入一个值。
有的时候,比如说自动化脚本测试中,希望能让脚本b.pl自动输入这个值,或者说,自动在b.pl脚本里给a.pl脚本里的变量$device_name赋值。
这样,程序就可以不用人工干预,全部自动运行了。
可以在b.pl中,用类似这样的语句来实现这个功能:
system(“echo yes|perl a.pl”);
或是
my @dev_check_result = readpipe(“echo “.$dev_file.” | perl a.pl”);
这样,在调用a.pl时,在命令行提示说要输入一个值给变量$device_name的时候,就会自动把yes或是$dev_file这个值赋值给a.pl里的$device_name变量。