PerlスクリプトからBashスクリプトに変数を渡すには?

PerlスクリプトからBashスクリプトに変数を渡すには?

私は私たちの会社で使用していた古代のPerlスクリプトを修正する責任を負い、約20年間Perlを見たことがありませんでした。だから私はいくつかの変数を選択して環境にダンプしたいと思います。

スクリプトが合計を生成し、それを$ total変数として保存するなど、1つのことを行うとします。私はbashスクリプトから$ totalを抽出し、デフォルトでPerlスクリプトの終了中に実行し続けたいと思います。

どうすればいいですか?

答え1

一方通行:

ラッパースクリプトで簡単に解析できる出力を表示するようにPerlスクリプトを変更します。

print "###$total###";

次に、シェルラッパースクリプトで使用します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"

関連情報