PERL sh:script_init:找不到命令

时间:2013-11-13 08:41:03

标签: linux perl bash shell

#!/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)

1 个答案:

答案 0 :(得分:0)

!/ usr / bin / perl -w

my $ file =“/ mistath / myenv.env”;

打开FILE,qq {ksh -c“。$ file; script_init $ 0 $ *;设置”|}或

死(“无法打开$ file($!)”);

while(&lt; FILE&gt;){

格格;

打印“$ _ \ n”;

}

再次非常感谢!