从shell使用Perl自定义脚本

时间:2017-09-26 11:44:17

标签: 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,它的效果非常好。

3 个答案:

答案 0 :(得分:1)

在调用perl程序之前,您没有在shell中导出变量。

将您的shell代码粘贴到http://www.shellcheck.net/ - 它会告诉您其他shell错误。

答案 1 :(得分:0)

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

./bin/flink run .... -p #parallelism

如果它与当前工作目录相关,则使用export file=/full/path/to/my/file/my_wa/fin

pwd

答案 2 :(得分:0)

你可以传递$ file作为参数

$file="my_wa/fin"
    if [[ "$file" == *"fin" ]]; then
        script.pl \"$file\"
    fi

然后访问数据

my $input_filename = $ARGV[0];