在Linuxbashshell中,可以使用以下方法转换字符串大小写:使用declare命令转换大小写使用tr命令转换大小写${parameter^^}表达式基于参数变量的值,将所有字符转换为大写得到新值${parameter,,}表达式基于参数变量的值,将所有字符转换tolowercase获取新值使用declare命令转换大小写,我们可以使用bash内置的declare命令的-l、-u选项来指定变量值始终保持小写或大写。检查manbash中declare命令的-l和-u选项,如下所示:-l当变量被赋值时,所有大写字符都转换为小写。-u当变量被赋值时,所有小写字母都被转换为大写字母。即对于用declare-l声明的变量,其字符串值将始终保持小写,赋值中包含的大写字母将自动转换为小写。当需要将字符串的内容全部转为小写时,可以将字符串赋值给declare-l声明的变量。具体例子如下:$declare-llower="TurnON"$echo$lowerturnon可以看到使用declare-l将lower声明为小写变量。即使赋值包含大写字母,变量的值也会以全部小写字母打印。用declare-u声明的变量的值总是大写的。分配中包含的小写字母将自动转换为大写字母。具体例子如下:$declare-uupper="happynewyear"$echo$upperHAPPYNEWYEAR注:bash中有一个排版命令,也支持-l、-u选项,可以用来转换大小写.此命令已弃用并由declare命令取代。推荐使用declare命令。查看helptypeset的说明如下:typeset:typeset[-aAfFgilrtux][-p]name[=value]...设置变量值和属性。过时的。参见“帮助申报”。使用tr命令进行大小写转换使用上述declare命令进行大小写转换的方法将整个字符串进行转换。如果要转换字符串中的特定字符,可以使用tr命令。你可以查看mantr的描述。关于大小写转换的关键信息如下:tr[OPTION]...SET1[SET2]翻译、压缩和/或删除标准输入中的字符,写入标准输出。SET被指定为字符串。大多数代表他们自己。解释序列为:CHAR1-CHAR2CHAR1到CHAR2的所有字符,按升序排列[:lower:]所有小写字母[:upper:]所有大写字母即tr命令读取标准输入,转换SET1指定的字符到SET2指定的字符。可以CHAR1-CHAR2的形式按字母升序指定多个字符。事实上,tr命令并不局限于转换大小写字符。主要用于替换字符。在这里,通过替换大小写字符来转换大小写。具体例子如下:$echo"ComeON"|trA-Za-zcomeon$echo"ComeON"|trA-Z55ome55$回声“新年快乐”|tra-zA-ZHAPPYNEWYEAR$回显“新年快乐”|tr[:lower:][:upper:]新年快乐$echo"新年快乐"|trhnHNHappyNewyear$echo"新年快乐"|trhnwrHNHappyNeNyeaN可以看到,trA-Za-z命令将大写字母A和大写字母Z之间的所有字符转换为它们对应的小写字母。trA-Z5命令将输入??的所有大写字母转换为数字5。tra-zA-Z命令将输入??的所有小写字母转换为相应的大写字母。您还可以使用[:lower:]指定所有小写字母,使用[:upper:]指定所有大写字母。trhnHN命令将小写的h转换为大写的H,小写的n转换为大写的N。当SET1参数提供的字符数大于SET2参数提供的字符数时,SET1多余的字符将转换为SET2的最后一个字符。trhnwrHN命令演示了这一点,在第二个参数的末尾将小写的w和r都转换为大写的N。使用${parameter^^}转大写Bash的${parameter^^}参数扩展表达式,根据参数变量值,将所有字符转为大写,得到新值。该表达式只能用于变量,参数必须是变量名。具体例子如下:$value="ComeON"$echo${value^^}COMEON$echo$valueComeON可以看到${value^^}将value变量value中的所有小写字母都转换为大写letters,这会产生一个新的字符串。这不会修改值变量值,它保持不变。如果需要保存转换后的字符串,可以将其赋值给特定的变量。使用${parameter,,}表达式小写Bash的${parameter,,}参数扩展表达式根据参数变量的值将所有字符转换为小写以获得新值。该表达式只能用于变量,参数必须是变量名。具体例子如下:$value="ComeON"$echo${value,,}comeon可以看到${value,,}的值是用小写字母打印的。该表达式也不修改值变量本身的值。
