1. 程式人生 > >linux bash shell:最方便的字串大小寫轉換(lowercase/uppercase conversion)

linux bash shell:最方便的字串大小寫轉換(lowercase/uppercase conversion)

關於字串大小寫轉換,是寫 linux 指令碼經常乾的事兒,所以總想找個方便的方法讓我少打點字兒,搜尋國內的中文資源,網上也能找到很多關於這個帖子,介紹的方法都差不多,用typeset是最簡單的方法了,但我覺得還是不夠簡單,因為需要多定義一個變數。

google上找到這個stackoverflow上的帖子,才知道Bash 4.0以上版本有更好的辦法:

《How to convert a string to lower case in Bash?》

就是${parameter,,pattern},${parameter^^pattern}表示式,表達不會改變原來變數的值

#! /bin/bash
# 注意:指令碼第一行一定要註明指令碼直譯器是bash.不能是sh,或dash
# 因為sh軟連線有可能指向的是dash
var="Hello,Word"
# 把變數中的第一個字元換成大寫 
echo ${var^} 
# 把變數中的所有小寫字母,全部替換為大寫
echo ${var^^}   
# 把變數中的第一個字元換成小寫
echo ${var,}
# 把變數中的所有大寫字母,全部替換為小寫
echo ${var,,}

Bash 4.0是2009年釋出的版本,現在的應用已經很廣泛了,我現在用的ubuntu 16預設安裝的就是bash 4.3,centos 6.5下預設安裝的是4.1.所以只要不是太老的linux版本,都不會相容性問題。

關於${parameter,,pattern},${parameter^^pattern}表示式更全面的說明參見下面Bash的官方手冊:

《Bash Reference Manual》