Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux PERL sh:script_init:未找到命令_Linux_Perl_Bash_Shell - Fatal编程技术网

Linux PERL sh:script_init:未找到命令

Linux PERL sh:script_init:未找到命令,linux,perl,bash,shell,Linux,Perl,Bash,Shell,问题: 我已经分解了脚本来模拟这个特定的错误, $file=要加载的环境文件,其中包括script_init和其他变量的路径 script_init=全局脚本函数,用于其他脚本的脚本初始化以加载环境变量 情景: 如果我在一个常规shell中运行脚本_init,或者在一个脚本(不是perl)中调用它,那么它就正常工作了。脚本的示例用法如下所示 sh: script_init: command not found 还是在贝壳里 #!/bin/ksh . /mypath/myenv.env sc

问题:

我已经分解了脚本来模拟这个特定的错误, $file=要加载的环境文件,其中包括script_init和其他变量的路径

script_init=全局脚本函数,用于其他脚本的脚本初始化以加载环境变量

情景:

如果我在一个常规shell中运行脚本_init,或者在一个脚本(不是perl)中调用它,那么它就正常工作了。脚本的示例用法如下所示

sh: script_init: command not found
还是在贝壳里

#!/bin/ksh

. /mypath/myenv.env

script_init "$0" "$*"

main script.. etc...
但是如果我在perl中调用它,它不会识别导致命令找不到的脚本_init,即使它加载了
$脚本需要文件(env)

/usr/bin/perl-w my$file=“/mypath/myenv.env”

打开文件,qq{ksh-c..$FILE;script_init$0$*;set“|}或

模具(“无法打开$file($!)”

而(){

咀嚼

打印“$\u\n”

}


再次感谢

真不敢相信。您回滚了设置问题格式的版本<代码>$*=>已在Perl v5.10.0中删除。与ksh$*不等效。脚本init是脚本文件名吗?然后在调用它时,在它之前添加。。在perl代码中指定解释器,说:
open(FILE,“.$FILE;ksh script_init$0$*;set |”)或
open(FILE,“.$FILE;sh script_init$0$*;set |”)或
,这取决于解释器应该是什么。@devnull:我认为这没有意义。
$文件
部分必须与脚本_init…部分在同一个shell中运行。可能类似于
打开文件,qq{ksh-c..$FILE;script_init$0$*;set“|}
#!/bin/ksh

. /mypath/myenv.env

script_init "$0" "$*"

main script.. etc...
$ script_init anotherscript parameter