如何在Bash中将字符串从大写转换为小写?
这个问题在这里已经有了答案:
如果您使用bash 4,则可以使用以下方法:
x="HELLO"
echo $x # HELLO
y=${x,,}
echo $y # hello
z=${y^^}
echo $z # HELLO
只使用一个,
或^
使第一个字母为lowercase
或uppercase
。
实现你的代码的正确方法是
y="HELLO"
val=$(echo "$y" | tr '[:upper:]' '[:lower:]')
string="$val world"
这使用$(...)
表示法来捕获变量中命令的输出。 还要注意string
变量周围的引号 - 你需要它们来表示$val
和world
是分配给string
的单个东西。
如果你有bash
4.0或更高版本,更高效和优雅的方法是使用bash
内建的字符串操作:
y="HELLO"
string="${y,,} world"
为什么不执行反引号?
x=`echo "$y" | tr '[:upper:]' '[:lower:]'`
这将反引号的结果赋给变量x
。 (也就是说,它不是特别需要tr
但是shell脚本的常见模式/解决方案)
您可以使用$(..)
而不是反引号。 请参阅此处了解更多信息。
上一篇: How to convert a string from uppercase to lowercase in Bash?
下一篇: How do I check if a given string is a legal/valid file name under Windows?