【发布时间】:2012-04-22 13:37:35
【问题描述】:
我在/opt/apps/abc/folder/properties.env 之类的位置有一个 Korn shell 脚本。我可以使用 dot 命令从 Unix bash 执行它:
. /opt/apps/abc/folder/properties.env
这行得通。
我有一个 Perl 脚本 abc.pl,我从中调用脚本 properties.env。我尝试了以下不同:
system('/usr/bin/ksh','-c', '. /opt/apps/abc/folder/properties.env');/usr/bin/ksh -c /opt/apps/abc/folder/properties.env;system('. /opt/apps/abc/folder/properties.env');
以上都不起作用。我不想使用exec,因为我想返回到 Perl 脚本。我做错了什么?
【问题讨论】:
-
1) 你期待什么结果? 2) 你会得到什么结果?
-
system('/usr/bin/ksh','-c', '/opt/apps/abc/folder/properties.env');怎么样? -
我也试过这个。没用。
-
ksh 脚本中有一些设置环境属性的命令。我希望它成功运行。
-
不可能从子进程中设置环境变量(你只能从 perl 中启动 ksh 脚本作为子进程)。从脚本中手动提取它们的设置并在 perl 脚本中设置它们的唯一方法。对不起英语。