为什么在我的bash命令中会出现“bad substitution”错误?

7
当我运行这个命令时,出现了“坏替换(bad substitution)”错误。我该怎么办?
$ x="Hello World"
$ echo "$x"
Hello World
$ echo "${x^^}"
-bash: ${x^^}: bad substitution

编辑:我希望它全都是大写字母。


3
你正在运行哪个版本的 bash - Barmar
1
适用于 GNU bash 版本 4.1.10(4)。 - Dave Jarvis
2
在Bash 4中添加了大小写修改运算符。 - Barmar
5
自带于OS X的Bash版本较为陈旧。可使用brew install bash进行安装更新。 - johnsyweb
1
我不明白这个:bash --versionGNU bash,版本4.4.19(1)-release(x86_64-apple-darwin17.4.0)ICAO="EDDF"; echo "${ICAO,,}"会产生-bash:$ {ICAO,,}:错误的替换。有人知道为什么吗? - Mojo66
显示剩余4条评论
1个回答

9

您的方法只适用于 bash 4。尝试以下方法:

echo $x | tr '[a-z]' '[A-Z]'

2
或者 cap=$(tr '[:lower:]' '[:upper:]' <<< "$x") - glenn jackman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接