bash - ${v^^} 和 ${v@U} 的区别?

标签 bash terminal parameter-expansion

Bash 4 具有参数扩展操作,允许使用 ${v^}${v^^} 将存储在变量中的字符串转换为大写/小写, ${v,,}${v,,}。在 Bash 5 中,添加了新的 @ 符号以提供各种扩展操作,其中一些还包括大小写转换:${v^} == ${v@ u}${v^^} == ${v@U}${v,,} = = ${v@L}(似乎没有与 ${v,} 匹配的运算符)。

${v^^}${v@U} 之间有什么区别,为了什么目的添加了做同样事情的新运算符?

最佳答案

${x^^} 这样的扩展采用一个可选的模式(应该一次匹配一个字符;如果省略它默认为 ? )来控制哪个字符是大写的,而 ${x@U} 大写 所有 字符。如果您在第一种形式中省略模式,它们是等价的,但如果您指定一个,它们就不一样了。例如,${x^^[aeiou]} 将仅显示大写元音。

关于bash - ${v^^} 和 ${v@U} 的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68708214/

相关文章:

bash - 如何在 Perl 中使用 Shell 参数扩展?

bash - 获取文件名的一部分

shell - 如何执行存储在变量中的命令?

将 Bash 脚本转换为 C。这可能吗?

linux - 打印和排序输出的替代方法

php - 一起在 PHP trail 中运行一些 Linux 命令

macos - npm install -g mongodb 没有在 OSX 10.8.4 上全局安装 mongodb?

linux - 如何删除位置参数的扩展名?

bash - 如何打印包含特定字符串的所有超过 10 天的文件?

objective-c - 如何从 Objective-C 或终端创建文件夹的 .dmg?