Skip to main content

在调用脚本时,用Perl给命令行输入参数直接赋值

技术
Author

cookwhy

Published

December 23, 2008

我有一个叫a.pl的Perl脚本,里面有类似下面的读取命令行输入值的语句:

my $device_name = ;

如果我在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变量。