サブコマンドから環境をインポートする際に、bashスクリプトからエクスポートされたすべての環境変数をハッシュに追加したいと思います。実行されるとprogram
、いくつかの変数が設定され、それらがエクスポートされます。これらの変数を後で使用するためにPerlスクリプトに保存したいと思います。ただし、サブコマンドで定義されているbash関数は使用したくありません。現在、私は次のようなブロックを持っています:
foreach (`program; env`)
{
next if /^\(\)/;
my ($a, $b) = split("=", $_);
if( /^(\w+)=(.*)$/ ) {
$hash{$1} = $2;
}
}
これを行うためのより良い方法はありますか?最初の()を一致させることが安全かどうかはわかりません。環境変数の改行を処理するためのボーナスポイント。今は目を閉じています。