寫程式很多時要將英文字母大小寫轉換, 例如想將第一個字母轉成大寫; 將 hostname 轉換成全部大寫或小寫等。Shell Script 可以用 tr 指令完成。例如:
1 2 3 4 5 |
#!/usr/bin/sh NAME="sam tang" echo $NAME | tr '[:lower:]' '[:upper:]' |
上面的 tr 會將 “sam tang” 轉換成 “SAM TANG”, 如果是將大寫轉換成小寫, 將 [:lower:] 及 [:upper:] 互換即可。
而 tr 另一種寫法可以這樣寫:
1 2 3 4 5 |
#!/usr/bin/sh NAME="sam tang" echo $NAME | tr '[a-z]' '[A-Z]' |
bash 提供了另一個方法, 使用 “^” 轉換第一個字母成大寫; “,” 轉換第一個字母成小寫, 如果使用 “^^” 或 “,,”, 則所有字母轉換成大寫或小寫, 例如:
1 2 3 4 5 6 |
#!/usr/bin/sh NAME="sam tang" echo ${NAME^} echo ${NAME^^} |
會輸出:
Sam tang
SAM TANG