expr除了可以进行算术运算之外,还可以操作字符串。
(1)输出字符串的长度
[root@172-0-10-222 shell-test]# str="abcde12345"
方式一:
[root@172-0-10-222 shell-test]# echo ${#str}
10
方式二:
[root@172-0-10-222 shell-test]# expr length $str
10
(2)取子串的操作
[root@172-0-10-222 shell-test]# str="abcde12345"
方式一:
[root@172-0-10-222 shell-test]# echo ${str:1:3}
bcd
方式二:
[root@172-0-10-222 shell-test]# expr substr $str 2 3
bcd
注意:${str:1:3}下标从0开始,expr下表从1开始。
(3)字符串连接操作(跟expr没关系)
[root@172-0-10-222 shell-test]# str1=name
[root@172-0-10-222 shell-test]# str2=liuzhiwei
[root@172-0-10-222 shell-test]# str3="$str1:$str2"
[root@172-0-10-222 shell-test]# echo $str3
name:liuzhiwei
(4)字符串替换操作(跟expr没关系)
[root@172-0-10-222 shell-test]# str="阿黄真帅,阿黄真丑"
替换一次:
[root@172-0-10-222 shell-test]# echo ${str/阿黄/狗}
狗真帅,阿黄真丑
全部替换:
[root@172-0-10-222 shell-test]# echo ${str//阿黄/狗}
狗真帅,狗真丑