如何将变量从 Perl 脚本传递到 Bash 脚本?

如何将变量从 Perl 脚本传递到 Bash 脚本?

我有责任修复我们公司使用的古老 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"

相关内容