天天看點

linux bash shell:最友善的字元串大小寫轉換(lowercase/uppercase conversion)

版權聲明:本文為部落客原創文章,轉載請注明源位址。 https://blog.csdn.net/10km/article/details/83384145

關于字元串大小寫轉換,是寫 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》