gpt4 book ai didi

perl - 如何在 Perl 中运行子命令正确导入环境?

转载 作者:行者123 更新时间:2023-12-04 21:55:18 26 4
gpt4 key购买 nike

在从子命令导入环境时,我想将从 bash 脚本导出的所有环境变量添加到哈希中。当program运行时,它将设置一些变量并导出它们。我想将这些变量保存在 Perl 脚本中供以后使用。但是我不想采用子命令中定义的 bash 函数。目前,我有一个像这样的 block :

foreach (`program; env`)
{
next if /^\(\)/;
my ($a, $b) = split("=", $_);
if( /^(\w+)=(.*)$/ ) {
$hash{$1} = $2;
}
}

有更好的方法吗?我不确定匹配初始 () 是否安全。处理环境变量中的换行符的奖励积分,我现在只是闭上眼睛。

最佳答案

你想要的就在那里:Shell-EnvImporter

一个例子:

  use Shell::EnvImporter;

# Import environment variables exported from a shell script
my $sourcer = Shell::EnvImporter->new(
file => $filename,
);


my $result = $sourcer->run() or die "Run failed: $@";

关于perl - 如何在 Perl 中运行子命令正确导入环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1200849/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com