从Perl在命令行上执行命令时,有没有办法将该结果存储为Perl中的变量?
my $command = "cat $input_file | uniq -d | wc -l";
my $result = system($command);
Run Code Online (Sandbox Code Playgroud)
$result 总是变成0.
exh*_*uma 10
使用"反引号":
my $command = "cat $input_file | uniq -d | wc -l";
my $result = `$command`;
Run Code Online (Sandbox Code Playgroud)
如果对退出代码感兴趣,您可以使用以下代码捕获它:
my $retcode = $?;
Run Code Online (Sandbox Code Playgroud)
在进行外部通话后.
来自perlfaq8:
为什么我不能用system()获取命令的输出?
你混淆了目的system()和反引号(````).system()运行命令并返回退出状态信息(作为16位值:低7位是进程死亡的信号,如果有的话,高8位是实际退出值).反引号(``)运行命令并返回它发送给STDOUT的内容.
$exit_status = system("mail-users");
$output_string = `ls`;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1776 次 |
| 最近记录: |