BASH系列(4)—— 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]#





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章