使用shell中的Perl自定义脚本

使用shell中的Perl自定义脚本,shell,perl,Shell,Perl,我试图将一个变量传递给自定义Perl脚本 $file="my_wa/fin" if [[ "$file" == *"fin" ]]; then script.pl fi 在我的脚本中,我尝试使用$file作为打开和读取文件的路径 my $input_filename = "$ENV{file}"; 我知道我需要以某种方式导出它并在Perl代码中接收它, 但是它不能识别$file-如果我只编写my_wa/fin调用per

我试图将一个变量传递给自定义Perl脚本

        $file="my_wa/fin"
        if [[ "$file" == *"fin" ]]; then
            script.pl 
        fi
在我的脚本中,我尝试使用
$file
作为打开和读取文件的路径

my $input_filename = "$ENV{file}";
我知道我需要以某种方式导出它并在Perl代码中接收它,
但是它不能识别
$file
-如果我只编写
my_wa/fin

调用perl程序之前,您没有在shell中导出变量,那么它就可以完美地工作


将shell代码粘贴到中--它将告诉您另一个shell错误。

是的,您需要在执行perl脚本之前导出shell中的环境变量文件。此外,您可能需要确保包含文件的完整路径

export file=/full/path/to/my/file/my_wa/fin

或者使用
pwd
,如果它与当前工作目录相关:


export file=“$(pwd)/my_wa/fin”
您可以将$file作为参数传递

$file="my_wa/fin"
    if [[ "$file" == *"fin" ]]; then
        script.pl \"$file\"
    fi
然后访问数据

my $input_filename = $ARGV[0];

尝试阅读alvinalexander.com/perl/perl-command-line-arguments-read-arg‌​s@ilux,404没有找到哦,