无法从shell脚本调用perl脚本

无法从shell脚本调用perl脚本,perl,Perl,我试图从shell脚本调用perl脚本,代码如下所示 shell脚本测试 #Call the script test2.pl ${PARTITION_ID} ${VNG_USER} ${VNG_PASSWORD} ${VNG_INSTANCE} if [ $? -ne 0 ] then OP1ExitStatus -6 fi 执行时收到以下错误消息: ./test_sh[142]: test2.pl: not found Failed in test_sh 两个文件的权限均为7

我试图从shell脚本调用perl脚本,代码如下所示

shell脚本测试

#Call the script
test2.pl ${PARTITION_ID} ${VNG_USER} ${VNG_PASSWORD} ${VNG_INSTANCE}
if [ $? -ne 0 ]
  then
    OP1ExitStatus -6
fi
执行时收到以下错误消息:

./test_sh[142]: test2.pl:  not found
Failed in test_sh
两个文件的权限均为755

但是,当我通过传递所有参数直接从命令行调用test2.pl时,它会成功运行。 我也尝试了以下命令:

#Call the script
perl test2.pl ${PARTITION_ID} ${VNG_USER} ${VNG_PASSWORD} ${VNG_INSTANCE}
if [ $? -ne 0 ]
  then
    OP1ExitStatus -6
fi
但它也不起作用。
请告诉我如何继续以成功运行它。

从命令行直接调用
perl test2.pl
。从脚本中,您假设(1)
test2.pl
是可执行的,并且(2)
位于
$PATH
的某个位置。我会在脚本中使用直接的
perl
调用,至少现在是这样。

从命令行直接调用
perl test2.pl
。从脚本中,您假设(1)
test2.pl
是可执行的,并且(2)
位于
$PATH
的某个位置。我会在脚本中使用直接的
perl
调用,至少现在是这样/bin/bash。您可能还想尝试使用Perl可执行文件的完整路径。

检查您的shebang,例如
#/bin/bash
。您可能还想尝试使用Perl可执行文件的完整路径。

这通常意味着Perl脚本顶部shebang行中的
Perl
路径是错误的(假设文件对您具有执行权限)

尝试使用:

#!/usr/bin/env perl

这通常意味着perl脚本顶部shebang行中的
perl
路径是错误的(假设文件对您具有执行权限)

尝试使用:

#!/usr/bin/env perl

您的shell脚本无法找到test2.pl。您需要在shell脚本中提供test2.pl的完整路径,或者确保它位于$path中。

您的shell脚本无法找到test2.pl。您需要在shell脚本中提供test2.pl的完整路径,或者确保它位于$path中。

那么第二个路径如何“不起作用”?有错误消息吗?那么第二条消息怎么会“不起作用”?有错误消息吗?或者:
/test2.pl
如果脚本有一个shebang,并且已经
chmod+x
ed.@Benôit:的确,尽管我通常只在没有扩展的脚本中这样做,考虑到扩展是一种指示,它应该直接提供给相应的解释器。或者:
/test2.pl
如果脚本有一个shebang并且已经
chmod+x
ed.@Benôit:的确,尽管我通常只在没有扩展的脚本中这样做,考虑到扩展是一种指示,它应该直接提供给相应的解释器。