#!/usr/bin/perl -w
my $file = "/mypath/myenv.env";
open (FILE, ". $file ;script_init $0 $* ;set |") or
die ("Cannot Open $file ($!)");
while (<FILE>){
chomp;
print "$_\n";
}
输出:
sh: script_init: command not found
问题:
我已经分解脚本来模拟这个特定的错误, $ file =是要加载的环境文件,其中包括script_init和其他变量的路径。
script_init =全局脚本函数,用于为其他脚本加载环境变量的脚本初始化。
情景:
如果我在常规shell中运行script_init或在脚本(而不是perl)中调用它,它正在工作。脚本的示例用法是这样的。
#!/bin/ksh
. /mypath/myenv.env
script_init "$0" "$*"
main script.. etc...
或在shell中
$ script_init anotherscript parameter
但如果我在perl中调用它,它不会识别script_init,导致找不到命令,即使它加载了脚本所需的. $file (env)
。
答案 0 :(得分:0)
my $ file =“/ mistath / myenv.env”;
打开FILE,qq {ksh -c“。$ file; script_init $ 0 $ *;设置”|}或
死(“无法打开$ file($!)”);
while(&lt; FILE&gt;){
格格;
打印“$ _ \ n”;
}
再次非常感谢!