原文地址: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的官方手册: