原文地址: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》

posted on 2019-02-22 09:38  睡着的糖葫芦  阅读(3758)  评论(0编辑  收藏  举报