从shell中使用Perl自定义脚本

我想将一个变量传递给自定义Perl脚本。从shell中使用Perl自定义脚本

 $file="my_wa/fin" 

if [[ "$file" == *"fin" ]]; then

script.pl

fi

在我的剧本我尝试使用$file我的路径打开和读取文件

my $input_filename = "$ENV{file}"; 

我明白,我需要以某种方式将其导出,并接受它在我的Perl代码, 但它不承认$file。 - 如果我只写my_wa/fin,它会很好地工作。

回答:

你可以通过$文件作为参数

$file="my_wa/fin" 

if [[ "$file" == *"fin" ]]; then

script.pl \"$file\"

fi

然后访问数据

my $input_filename = $ARGV[0]; 

回答:

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

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

回答:

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

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

或利用的pwd如果它是相对于当前的工作目录:

export file="$(pwd)/my_wa/fin"

以上是 从shell中使用Perl自定义脚本 的全部内容, 来源链接: utcz.com/qa/258518.html

回到顶部