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

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)'`
a=$str ? ?这是是将string 整体赋予数组的第一个元素
str=`ls *`
set -A a ${str} ?这个是将整个数组分别赋予数组的各个元素


数组转string呢
b="${a[*]}"

perl的数组和string的转化呢
split()/joint()


string处理

shell用模式识别

perl用substr or 正则


shell,perl的加法,数值比较
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 自动加

(编辑:李大同)

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

    推荐文章
      热点阅读