Perl的命令行参数和ARGV - 骏马金龙- 博客园

文章推薦指數: 80 %
投票人數:10人

perl将perl命令行的参数列表放进数组ARGV(@ARGV)中。

既然是数组,就可以访问($ARGV[n])、遍历,甚至修改数组元素; ARGV数组分三种情况收集:. 首页 新闻 博问 专区 闪存 班级 我的博客 我的园子 账号设置 简洁模式... 退出登录 注册 登录 骏马金龙 (博客已搬家:www.junmajinlong.com) 网名骏马金龙,钟情于IT世界里的各种原理和实现机制,强迫症重症患者。

爱研究、爱翻译、爱分享。

特借此一亩三分田记录自己成长点滴!!! 骏马金龙 网名骏马金龙,钟情于IT世界里的各种原理和实现机制,强迫症重症患者。

爱研究、爱翻译、爱分享。

特借此一亩三分田记录自己成长点滴!!! Perl的命令行参数和ARGV 程序名:$0 $0表示当前正在运行的Perl脚本名。

有3种情况: 如果执行方式为perlx.pl,则$0的值为x.pl而非perl命令本身 如果执行方式为./x.pl,则$0的值为./x.pl 如果执行的是perl-e或perl-E一行式perl程序,则$0的值为-e或-E 命令行参数ARGV perl将perl命令行的参数列表放进数组ARGV(@ARGV)中。

既然是数组,就可以访问($ARGV[n])、遍历,甚至修改数组元素 ARGV数组分三种情况收集: perlx.plabc方式运行时,脚本名x.pl之后的abc才会被收集到ARGV数组 ./x.plabc方式运行时,abc才会被收集到ARGV数组 perl-e'xxxxx'abc方式运行时,abc才会被收集到ARGV数组 ARGV数组索引从0开始计算,索引0位从脚本名(perl程序名)之后的参数开始计算 默认,这些命令行参数是perl程序的数据输入源,也就是perl会依次将它们当作文件进行读取 参数是有序的,读取的时候也是有序的 需要区分ARGV变量和ARGV数组: $ARGV表示命令行参数代表的文件列表中,当前被处理的文件名 @ARGV表示命令行参数数组 $ARGV[n]:表示命令行参数数组的元素 ARGV:表示<>当前正在处理的文件句柄 例如,test.plx的内容如下: /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"; 执行这个程序: shell>./test.plx-wabcd $ARGV[0]--->-w $ARGV[1]--->a $ARGV[2]--->b $ARGV[3]--->c $ARGV[4]--->d 因为是数组,所以可以修改数组,比如强制指定元素: /usr/bin/perl @ARGV=qw(firstsecondthird); print'$ARGV[0]--->',$ARGV[0],"\n", '$ARGV[1]--->',$ARGV[1],"\n", '$ARGV[2]--->',$ARGV[2],"\n"; shell>./test.plxabcd $ARGV[0]--->first $ARGV[1]--->second $ARGV[2]--->third 例如,读取2个文件(a.log,b.log)的内容: /usr/bin/perl while(<>){ print$_; } shell>./test.plxa.logb.log 如果想读取标准输入,只需使用"-"作为文件参数即可。

$echo-e"abcd\nefg"|./test.plxa.log-b.log 上面将按先后顺序读取a.log,标准输入(管道左边命令的输出内容),b.log。

作者:骏马金龙 出处:http://www.cnblogs.com/f-ck-need-u/ Linux运维交流群:921383787 Linux系列文章:https://www.junmajinlong.com/linux/index/ Shell系列文章:https://www.junmajinlong.com/shell/index/ 网站架构系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html MySQL/MariaDB系列文章:https://www.cnblogs.com/f-ck-need-u/p/7586194.html Perl系列:https://www.junmajinlong.com/perl/index Go系列:https://www.cnblogs.com/f-ck-need-u/p/9832538.html Python系列:https://www.cnblogs.com/f-ck-need-u/p/9832640.html Ruby系列:https://www.junmajinlong.com/ruby/index 操作系统系列:https://www.junmajinlong.com/os/index/ 精通awk系列:https://www.junmajinlong.com/shell/awk/index posted@ 2018-08-2921:38  骏马金龙  阅读(21759)  评论(0)  编辑  收藏  举报 刷新评论刷新页面返回顶部 Copyright©2022骏马金龙 Poweredby.NET6onKubernetes 😀点这里关注我😀 QQ群921383787 缩/放目录



請為這篇文章評分?