我正在尝试将变量传递给自定义Perl脚本。
$file="my_wa/fin"
if [[ "$file" == *"fin" ]]; then
script.pl
fi
在我的脚本中,我尝试使用$file
作为我打开和阅读文件的路径
my $input_filename = "$ENV{file}";
我知道我需要以某种方式导出它并在我的Perl代码中接收它,
但它无法识别$file
。 - 如果我只写my_wa/fin
,它的效果非常好。
答案 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];