變量(字符串)變換
定義一個變量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]#