我正在从键盘阅读一个字符,并将其转换为大写,然后再次显示该字符。但是下面的代码会产生错误:
read a; a=echo $a | tr 'a-z' 'A-Z' echo $a
我也试过这个:
read option; eval $(awk -v option=$option '{print "a="toupper(option);}') echo $a
ygya80vv1#
AWK是转换大写/小写的正确方法,并且完全支持Unicode; -)
echo "öäüßè" | awk 'BEGIN { getline; print toupper($0) }'
n3h0vuf22#
使用command substitution:
a=`echo $a | tr 'a-z' 'A-Z'`
注意echo和tr周围的记号```。
echo
tr
i1icjdpr3#
使用bash脚本
printf "Type your Message Here: " read message echo Upper Case: $message | tr [:lower:] [:upper:]; echo Lower Case: $message | tr [:upper:] [:lower:]
oipij1gg4#
awk是错误的方法,但有一种方法可以做到:
awk
a=$(awk 'BEGIN { getline; print toupper($0) }') echo $a
bqjvbblv5#
无法获取
去工作但是
a=`echo $a | tr '[a-z]' '[A-Z]'`
ded(注意附加的regex []括号。在/usr/bin/sh脚本中,此操作与
... while getopts ":l:c:" option; do case "$option" in l) L_OPT=`echo ${OPTARG}| tr '[a-z]' '[A-Z]'` ;; c) C_OPT=`echo ${OPTARG} | tr '[a-z]' [A-Z]'` ;; \?) echo $USAGE exit 1 ;; esac done ...
igsr9ssn6#
如果你想把a的结果存回a,那么你可以使用 * 命令替换 *:
a
read a; a=$(echo $a | tr 'a-z' 'A-Z') echo $a
tp5buhyn7#
这可以在Bash中本地完成,如下所示:
read a; a="${a^^}" echo "$a"
不需要调用tr之类的其他命令,因为Bash可以自己完成这一操作。另请参见:Bash parameter expansion。
7条答案
按热度按时间ygya80vv1#
AWK是转换大写/小写的正确方法,并且完全支持Unicode; -)
n3h0vuf22#
使用command substitution:
注意
echo
和tr
周围的记号```。i1icjdpr3#
使用bash脚本
oipij1gg4#
awk
是错误的方法,但有一种方法可以做到:bqjvbblv5#
无法获取
去工作但是
ded(注意附加的regex []括号。
在/usr/bin/sh脚本中,此操作与
igsr9ssn6#
如果你想把
a
的结果存回a
,那么你可以使用 * 命令替换 *:tp5buhyn7#
这可以在Bash中本地完成,如下所示:
不需要调用
tr
之类的其他命令,因为Bash可以自己完成这一操作。另请参见:Bash parameter expansion。