专栏名称: Linux爱好者
伯乐在线旗下账号,「Linux爱好者」专注分享 Linux/Unix 相关内容,包括:工具资源、使用技巧、课程书籍等。
相关文章推荐
Linux就该这么学  ·  网络工程师这样用,简直是要榨干 ... ·  13 小时前  
Linux就该这么学  ·  全量上线!Windows 直接运行安卓 App ·  13 小时前  
Linux就该这么学  ·  Kubernetes 上构建高可用 ... ·  昨天  
Linux就该这么学  ·  手把手教学:Nginx ... ·  2 天前  
Linux就该这么学  ·  国内网工待遇 VS 国外网工待遇,看完扎心了! ·  2 天前  
51好读  ›  专栏  ›  Linux爱好者

Linux Shell 字符串操作(长度/查找/替换)详解

Linux爱好者  · 公众号  · linux  · 2017-05-21 21:59

正文

(点击 上方公众号 ,可快速关注)


源: 程默

http://www.cnblogs.com/chengmo/archive/2010/10/02/1841355.html

如有好文章投稿,请点击 → 这里了解详情


在做shell批处理程序时候,经常会涉及到字符串相关操作。有很多命令语句,如:awk、sed都可以做字符串各种操作。 其实shell内置一系列操作符号,可以达到类似效果,大家知道,使用内部操作符会省略启动外部程序等时间,因此速度会非常的快。


一、判断读取字符串值



加入了“*” 不是意思是: 当然, 如果变量var已经被设置的话, 那么其值就是$var.


[chengmo@ localhost ~]$ echo ${abc-'ok'}

ok

[chengmo@ localhost ~]$ echo $abc

[chengmo@ localhost ~]$ echo ${abc='ok'}

ok

[chengmo@ localhost ~]$ echo $abc

ok


如果abc 没有声明“=” 还会给abc赋值。


[chengmo@ localhost ~]$ var1=11;var2=12;var3=

[chengmo@ localhost ~]$ echo ${!v@}

var1 var2 var3

[chengmo@ localhost ~]$ echo ${!v*}

var1 var2 var3


${!varprefix*}与${!varprefix@}相似,可以通过变量名前缀字符,搜索已经定义的变量,无论是否为空值。


二、字符串操作(长度,读取,替换)



说明:”* $substring”可以是一个正则表达式.


1.长度

[web97@salewell97 ~]$ test='I love china'

[web97@salewell97 ~]$ echo ${#test}

12

${#变量名}得到字符串长度







请到「今天看啥」查看全文