码迷,mamicode.com
首页 > 系统相关 > 详细

Linux shell的${}用法

时间:2018-10-01 00:14:16      阅读:270      评论:0      收藏:0      [点我收藏+]

标签:err   www.   ima   获取   一个   正则表达   正则表达式   顺序   状态   

***************获取字符串长度
${#varname}
[root@localhost ~]# var=123456
[root@localhost ~]# echo ${#var}
6

***************字符串切片
${var:offset}
${var:offset:length}
截取从offset个字符开始,向后length个字符
[root@localhost ~]# echo ${var:0:2}
12
[root@localhost ~]# echo ${var:2:3}
345

截取最后一个字符:
[root@localhost ~]# echo ${var:(-1)}
6
截取最后三个字符:
[root@localhost ~]# echo ${var:(-3)}
456
截取从倒数第三个字符后的两个字符:
[root@localhost ~]# echo ${var:(-3):2}
45
注意字符的顺序是从零开始的

***************替换字符串
格式:${varname/pattern/string}表示匹配第一个字符
[root@localhost ~]# animal=‘black dog‘
[root@localhost ~]# echo ${animal/black/green}
green dog
pattern可以使用正则表达式
[root@localhost ~]# char=123aaabbbccc
[root@localhost ~]# echo ${char/a
/4}
1234
${varname/pattern/string/}表示匹配所有字符

***************字符串截取
格式:
${varname#word} 表示删除匹配前缀
${varname##word}
${varname%word} 表示删除匹配后缀
${varname%%word}

% 去掉右边, 为最短匹配模式, %% 最长匹配模式
# 去掉左边,最短匹配模式,## 最长匹配模式

[root@localhost ~]# url="https://www.cnblogs.com/hzdwwzz"
[root@localhost ~]# echo ${url#//}
www.cnblogs.com/hzdwwzz
以//为分隔符去除字符串
[root@localhost ~]# echo ${url##
/}
hzdwwzz
以/为分隔符去除所有前缀

[root@localhost ~]# echo ${url%%//}
https:
[root@localhost ~]# echo ${url%/
}
https://www.cnblogs.com

***************变量状态赋值
${VAR:-string} 如果 VAR 变量为空则返回 string
${VAR:+string} 如果 VAR 变量不为空则返回 string
${VAR:=string} 如果 VAR 变量为空则重新赋值 VAR 变量值为 string
${VAR:?string} 如果 VAR 变量为空则将 string 输出到 stderr

Linux shell的${}用法

标签:err   www.   ima   获取   一个   正则表达   正则表达式   顺序   状态   

原文地址:https://www.cnblogs.com/hzdwwzz/p/9733690.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!