无法从shell脚本调用perl脚本
我试图从shell脚本调用perl脚本,代码如下所示 shell脚本测试无法从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
#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:的确,尽管我通常只在没有扩展的脚本中这样做,考虑到扩展是一种指示,它应该直接提供给相应的解释器。