shell脚本编程(二)变量的高级用法

变量替换

1、${变量名#匹配规则}

作用:从变量开头进行规则匹配,将符合最短的数据删除

2、${变量名##匹配规则}

作用:从变量开头进行规则匹配,将符合最长的数据删除

3、${变量名%匹配规则}

作用:从变量尾部进行规则匹配,将符合最短的数据删除

4、${变量名%%匹配规则}

作用:从变量尾部进行规则匹配,将符合最长的数据删除

5、${变量名/旧字符串/新字符串}

作用:变量内容符合旧字符规则,则第一个就字符会被新字符串取代

6、${变量名//旧字符串/新字符串}

作用:变量内容符合旧字符串则,则全部的旧字符串会被新字符串取代

字符串处理

计算字符串的长度方式一: ${#string}

计算字符串的长度方式二: expr length ${变量}

计算字符串的长度方式三: expr macth ${变量} 表达式

说明:match是从头开始匹配的。

获取字符串索引位置:expr index ${string} substr

说明:索引从1开始计数。

注意点:expr会把start中切成一个一个的字符进行匹配,例如s就出现在索引在6的位置上。而第二次uniq是查找出q了最先出现的位置上。就是1

抽取子字符串的方式一:${string:position}

说明:从string中的postion开始

索引从0开始

抽取子字符串的方式二:${string:postion:length}

说明:从postion开始,匹配长度为length

抽取子字符串的方式三:${string:-position}

说明:从右边开始匹配、注意必须中间有空格

抽取子字符串的方式四:${string:(position)}

说明:从左边开始匹配

抽取子字符串的方式五:expr substr $string $position $length

说明:从postion开始,匹配长度的length

因为索引是从1开始的、所以结果为45678

编写一个简单的交互脚本

说明:格式一定要严格,不能有; {}位置一定要放好

发表评论