Linux PERL sh:script_init:未找到命令
问题: 我已经分解了脚本来模拟这个特定的错误, $file=要加载的环境文件,其中包括script_init和其他变量的路径 script_init=全局脚本函数,用于其他脚本的脚本初始化以加载环境变量 情景: 如果我在一个常规shell中运行脚本_init,或者在一个脚本(不是perl)中调用它,那么它就正常工作了。脚本的示例用法如下所示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
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($!)”
而(再次感谢 真不敢相信。您回滚了设置问题格式的版本<代码>$*=>已在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