キーボードから文字を読み取り、大文字に変換してから、文字を再度表示しています。しかし、これはエラーを示しています。これどうやってするの。
私のコード:-
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
a
の結果をa
に保存したい場合は、コマンド置換を使用できます。
read a;
a=$(echo $a | tr 'a-z' 'A-Z')
echo $a
これは、次のようにbash
でネイティブに実行できます。
read a;
a="${a^^}"
echo "$a"
tr
はそれ自体で実行できるため、bash
のような他のコマンドを呼び出す必要はありません。
AWKは、Unicodeを完全にサポートして大文字/小文字を変換する正しい方法です;-)
echo "öäüßè" | awk 'BEGIN { getline; print toupper($0) }'
コマンド置換を使用する:
a=`echo $a | tr 'a-z' 'A-Z'`
Echoとtrの周りのティック `に注意してください。
awk
はここに行くのに間違った方法ですが、これができる1つの方法です。
a=$(awk 'BEGIN { getline; print toupper($0) }')
echo $a
取得できませんでした
a=`echo $a | tr 'a-z' 'A-Z'`
働くが、
a=`echo $a | tr '[a-z]' '[A-Z]'`
しました(追加の正規表現[]括弧に注意してください。
/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
...