方案1:使用tr命令
- Linux中的
tr
命令可以用于转换或删除文本中的指定字符。tr
命令默认从标准输入中读取数据,经过字符串转义之后,将结果输出到标准输出。
echo "TomAndersen" | tr a-z A-Z
echo "TomAndersen" | tr A-Z a-z
echo "Hello Hello" | tr Ho hO
echo "Hello Hello" | tr -d H
方案2:使用awk命令
awk
工具是一种强大的文本分析工具,主要功能是将每行文本按照特定分隔符分成多个字段进行处理,默认每行使用空格和制表符分割,使用自带的tolower
函数能够将指定的字段全部字符转换成小写,使用toupper
函数能够将全部字符转换成大写。
echo "Tom Andersen" | awk '{print tolower($0)}'
echo "Tom Andersen" | awk '{print toupper($0)}'
方案3:利用Bash特性
- 在读取变量时使用
^^
字符能够将输出字符转换成全大写,使用,,
字符能够将输出字符转换成全小写
var1='TomAndersen'
echo ${var1^^}
var2='TomAndersen'
echo ${var2,,}
方案4:使用typeset/declare命令
- 使用
typeset
或者declare
命令设置变量的属性,两个命令使用方式完全相同。使用此命令时需慎重,当使用typeset/declare
命令改变变量的属性时,这种改变是长期有效的,且如果将变量设置为只读命令,那么一般情况下将无法修改此变量的只读属性(可以通过gdb
工具重置变量),只读变量生命周期一般与当前Shell线程相同
typeset -u a
a="abc"
echo $a
typeset -l a
a="ABC"
echo $a
End~