加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何最好地传递参数到Perl一行?

发布时间:2020-12-15 21:18:13 所属栏目:大数据 来源:网络整理
导读:我有一个文件,一些文件,像这样: $cat someFilehdisk1 activehdisk2 active 我使用这个shell脚本来检查: $cat a.sh#!/usr/bin/kshfor d in 1 2do grep -q "hdisk$d" someFile echo "$d : ok"done 我试图把它转换成Perl: $cat b.sh#!/usr/bin/kshexport d
我有一个文件,一些文件,像这样:
$cat someFile
hdisk1 active
hdisk2 active

我使用这个shell脚本来检查:

$cat a.sh
#!/usr/bin/ksh
for d in 1 2
do
    grep -q "hdisk$d" someFile && echo "$d : ok"
done

我试图把它转换成Perl:

$cat b.sh
#!/usr/bin/ksh
export d
for d in 1 2
do
    cat someFile | perl -lane 'BEGIN{$d=$ENV{'d'};} print "$d: OK" if /hdisk$ds+/'
done

我导出shell脚本中的变量d,并在Perl中使用%ENV获取值。有没有更好的方法将这个值传递给Perl一线?

解决方法

您可以使用“s”开关启用基本命令行参数。为破折号开始的每个参数定义一个变量。 – 告诉您的命令行参数的起始位置。
for d in 1 2 ; do 
  cat someFile | perl -slane ' print "$someParameter: OK" if /hdisk$someParameters+/' -- -someParameter=$d; 
done

见:perlrun

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读