循环遍历声明的变量名时更改bash中文本的大小写
我怎样才能实现这样的大小写文本:
string="this is a string"
for case in u l c
do
declare -"${case}" out
out=$string
echo $out
done
#THIS IS A STRING
#this is a string
#This is a string
循环遍历已声明变量的名称:
declare -u UPPER
declare -l LOWER
declare -c CAPITALIZE
for i in UPPER LOWER CAPITALIZE
do
i=$string
echo $i
done
#this is a string
#this is a string
#this is a string
(注意全部小写)
回答
你可以这样使用它:
string="this is a string"
declare -u UPPER
declare -l LOWER
declare -c CAPITALIZE
for i in UPPER LOWER CAPITALIZE; do
declare $i="$string" # assign value to each var
echo "$i='${!i}'" # print each var
done
输出:
UPPER='THIS IS A STRING'
LOWER='this is a string'
CAPITALIZE='This is a string'