我有责任修复我们公司使用的古老 Perl 脚本,我什至已经有大约 20 年没有看过 Perl 了。所以我想选取几个变量,并将它们转储到环境中,例如......
假设脚本做了一件事,比如生成总计,并将其保存为变量 $total,我希望能够在我的 bash 脚本中提取 $total 并继续运行它,同时基本上退出 perl 脚本。
我该怎么做呢?
答案1
单程:
修改 Perl 的脚本以显示可以通过包装脚本轻松解析的输出:
print "###$total###";
然后在 shell 包装脚本中使用GNU grep
:
#!/bin/bash
total=$(./script.pl | grep -oP '###\K[\d,.]+(?=###))
echo "$total"
另一种方法,使用临时文件
open my $fh, ">", '/tmp/specific_file_name_with_total'
or die $!;
print $fh $total;
close $fh;
然后是巴什
#!/bin/bash
total=$(< /tmp/specific_file_name_with_total)
echo "$total"