大写bash变量

时间:2014-05-11 14:18:16

标签: bash

我在bash中有以下行:

echo "Manufacturer: $(echo ${family:-$name}|cut -d' ' -f1)"

我想使用${var^}语法来大写回显字符串,但不确定如何将其添加到当前行。有人可以建议怎么做吗?

3 个答案:

答案 0 :(得分:2)

两个一个衬垫

$ echo "watever" | awk '{print toupper($0)}'


$ echo "watever" | tr '[:lower:]' '[:upper:]'

答案 1 :(得分:1)

使用command substitution

将命令的输出存储在变量中
s=$(echo "Manufacturer: $(echo ${family:-$name}|cut -d' ' -f1)")

然后使用:

echo "${s^^}"

将字符串大写。

答案 2 :(得分:1)

sed在这里很方便:

name=smith
family=""

echo "Manufacturer: $(sed 's/[^[:blank:]]\+/\U&/' <<< "${family:-$name}")"
Manufacturer: SMITH

如果您只想“标题案例”(“制造商:史密斯”),请使用\u代替\U

相关问题