码迷,mamicode.com
首页 > 其他好文 > 详细

BASH系列(4)—— BASH变量操作

时间:2015-11-10 16:22:52      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:bash变量

  • 变量(字符串)变换


    

定义一个变量t,内容为framE
[root@vm1 tmp]# t=framE

查看变量t的内容:echo $t或者是echo ${t}
[root@vm1 tmp]# echo $t
framE
[root@vm1 tmp]#

将变量t的首字母大写:echo ${t^}
[root@vm1 tmp]# echo ${t^}
FramE
[root@vm1 tmp]# 

将变量t的所有字母大写:echo ${t^^}
[root@vm1 tmp]# echo ${t^^}
FRAME
[root@vm1 tmp]# 

将变量t的首字母小写:echo ${t,}
[root@vm1 tmp]# echo ${t,}
framE
[root@vm1 tmp]#

将变量t的所有字母小写:echo ${t,,}
[root@vm1 tmp]# echo ${t,,}
frame
[root@vm1 tmp]# 

将变量t的首字母大小写切换:echo ${t~}
[root@vm1 tmp]# echo ${t~}
FramE
[root@vm1 tmp]#

将变量t的所有字母大小写切换:echo ${t~~}
[root@vm1 tmp]# echo ${t~~}
FRAMe
[root@vm1 tmp]# 

总结:

^:首字母大写
^^:所有字母大写
,:首字母小写
,,:所有字母小写
~:首字母大小写切换
~~:所有字母大小写切换




  • 移除匹配的字符串

定义一个变量filename,该变量的值为pwd所对应的当前路径
[root@vm1 network-scripts]# filename="$(pwd)"
[root@vm1 network-scripts]# echo $filename
/etc/sysconfig/network-scripts
[root@vm1 network-scripts]# 

从前往后删,删除掉最短的一个"/"
[root@vm1 network-scripts]# echo ${filename#*/}
etc/sysconfig/network-scripts
[root@vm1 network-scripts]# 

从前往后删,删除掉最长的一个"/"
[root@vm1 network-scripts]# echo ${filename##*/}
network-scripts
[root@vm1 network-scripts]# 

从后往前删,删除掉最短的一个"/"
[root@vm1 network-scripts]# echo ${filename%/*}
/etc/sysconfig
[root@vm1 network-scripts]# 

从后往前删,删除掉最短的一个"/"
[root@vm1 network-scripts]# echo ${filename%%/*}

[root@vm1 network-scripts]# 



#:从前往后删,删除掉最短的一个
##:从前往后删,删除掉最长的一个
%:从后往前删,删除掉最短的一个
%%:从后往前删,删除掉最长的一个



  • 查找与替换


查看变量filename的内容:
[root@vm1 network-scripts]# echo $filename
/etc/sysconfig/network-scripts
[root@vm1 network-scripts]#

将第一次出现的小写s替换成大写的S
[root@vm1 network-scripts]# echo ${filename/s/S}
/etc/Sysconfig/network-scripts
[root@vm1 network-scripts]#

将所有的小写s替换成大写的S
[root@vm1 network-scripts]# echo ${filename//s/S}
/etc/SySconfig/network-ScriptS
[root@vm1 network-scripts]# 

总结:
/match/value:将第一次出现的match地换成value
//match/value:将所有的match替换成value



  • 其他字符串的操作符

查询字符串的长度:echo {#filename}
[root@vm1 network-scripts]# echo ${#filename}
30
[root@vm1 network-scripts]# 

字符串切片操作:${filename:offset:length}  offset从0开始
[root@vm1 network-scripts]# echo ${filename:5:9}
sysconfig
[root@vm1 network-scripts]#





本文出自 “Felix Zhang” 博客,请务必保留此出处http://hezhanglinux.blog.51cto.com/10861477/1711388

BASH系列(4)—— BASH变量操作

标签:bash变量

原文地址:http://hezhanglinux.blog.51cto.com/10861477/1711388

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