perl和shell的语法不同之处---打卡19---ing
发布时间:2020-12-15 23:56:03 所属栏目:大数据 来源:网络整理
导读:整个数组输出 echo "${a[@]}"是打印全数组 perl print "@a" 数组长度 shell cnt=${#a[@]} perl? $d=@a or? $#a 数组最后一个索引,即长度-1 数组,string长度的perl和shell的不同获取方法 perl? $a1=@a; $b1=length($str) shell 字符串长度 ${#string} expr
整个数组输出
echo "${a[@]}"是打印全数组 perl print "@a" 数组长度 shell cnt=${#a[@]} perl? $d=@a or? $#a 数组最后一个索引,即长度-1 数组,string长度的perl和shell的不同获取方法 perl? $a1=@a; $b1=length($str) shell 字符串长度 ${#string} expr length $string 数组和string的转化 shell str=`ls $path |egrep '(^s)'`
string处理 shell用模式识别 perl用substr or 正则 perl $i++ shell expr,(()),typeset -i i=0 shell是以string为基础的语言,数学运算要特殊处理 i=`expr $i+1` ((i=i+1)) 注意(())里面没有$ perl不需要 perl,shell 字符串和数值比较 都是分开 perl? eq 是string 比较,==是数值比较 shell -eq 是数值比较,== 是string比较 shell语法 判断,循环,分支 if,while/for,switch [] 中间判断用.表示test do表示范围 done shell没有for()这种用法。 perl ? ()中间判断? 全是{}表示范围 文件读取; perl? $a=<$fd>;按行读取 @a=<$fd>;全部读取 shell中没有open。所以没有句柄 只能用while read但是只能一行一行地读? while read line do ? ? prnt $line done<1.txt perl while (<>) { print $_; } 钻石操作符 shell 没有钻石操作符.<>极少见,>写,<读,用于重定向 perl用钻石操作符读取文件 shell没有pop,push,shift,unshift 字符串连接 shell 字符串连接不用,直接写,or用""整体括起来? cwd=$cwd/email.txt perl 需要用.连接 $cwd=$cwd.email.txt? perl退出程序 exit 1 退出子函数 return 1 shell 退出程序和子函数都是 return 1和exit 1 ?均可 perl 用chomp控制回车 shell printf可以实现不加n print,echo 自动加(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |