• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

perl的命令行参数ARGV

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

  • perl将perl命令行的参数列表放进数组ARGV(@ARGV)中。既然是数组,就可以访问($ARGV[n])、遍历,甚至修改数组元素
  • ARGV数组分三种情况收集:
    • perl x.pl a b c方式运行时,脚本名x.pl之后的a b c才会被收集到ARGV数组
    • ./x.pl a b c方式运行时,a b c才会被收集到ARGV数组
    • perl -e 'xxxxx' a b c方式运行时,a b c才会被收集到ARGV数组
  • ARGV数组索引从0开始计算,索引0位从脚本名(perl程序名)之后的参数开始计算
  • 默认,这些命令行参数是perl程序的数据输入源,也就是perl会依次将它们当作文件进行读取
  • 参数是有序的,读取的时候也是有序的
  • 需要区分ARGV变量和ARGV数组:
    • $ARGV表示命令行参数代表的文件列表中,当前被处理的文件名
    • @ARGV表示命令行参数数组
    • $ARGV[n]:表示命令行参数数组的元素
    • ARGV:表示<>当前正在处理的文件句柄

例如,test.plx的内容如下:

1
2
3
4
5
6
7
/usr/bin/perl

print '$ARGV[0] ---> ',$ARGV[0],"\n",
      '$ARGV[1] ---> ',$ARGV[1],"\n",
      '$ARGV[2] ---> ',$ARGV[2],"\n",
      '$ARGV[3] ---> ',$ARGV[3],"\n",
      '$ARGV[4] ---> ',$ARGV[4],"\n";

执行这个程序:

1
2
3
4
5
6
shell> ./test.plx -w a b c d
$ARGV[0] ---> -w
$ARGV[1] ---> a
$ARGV[2] ---> b
$ARGV[3] ---> c
$ARGV[4] ---> d

因为是数组,所以可以修改数组,比如强制指定元素:

1
2
3
4
5
6
/usr/bin/perl

@ARGV=qw(first second third);
print '$ARGV[0] ---> ',$ARGV[0],"\n",
      '$ARGV[1] ---> ',$ARGV[1],"\n",
      '$ARGV[2] ---> ',$ARGV[2],"\n";
1
2
3
4
shell> ./test.plx a b c d
$ARGV[0] ---> first
$ARGV[1] ---> second
$ARGV[2] ---> third

例如,读取2个文件(a.log,b.log)的内容:

1
2
3
4
5
/usr/bin/perl

while(<>){
    print $_;
}
shell> ./test.plx a.log b.log

如果想读取标准输入,只需使用"-"作为文件参数即可。

$ echo -e "abcd\nefg" | ./test.plx a.log - b.log

上面将按先后顺序读取a.log,标准输入(管道左边命令的输出内容),b.log。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Win8.1下PerlPPM启动问题发布时间:2022-07-22
下一篇:
Perl语言入门-第二章-标量数据-习题发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap