无法从shell脚本调用perl脚本

时间:2011-04-01 05:40:54

标签: perl

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

shell脚本test_sh

#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

但它也无效。 请让我知道如何继续以便成功运行它。

4 个答案:

答案 0 :(得分:3)

从命令行直接调用perl test2.pl。从脚本中你假设(1)test2.pl是可执行的,(2).$PATH某处。我会在脚本中使用直接perl调用,至少目前是这样。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

尝试使用:

#!/usr/bin/env perl

答案 3 :(得分:0)

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