当前位置: 技术问答>linux和unix
iis7站长之家
rev_str=${rev_str}${temp_char}是什么意思?
来源: 互联网 发布时间:2015-01-13
本文导语: echo "Enter string" read str len=`echo $str | wc -c` while test $len -ne 0 do temp_char=`echo $str | cut -c$len` rev_str=${rev_str}${temp_char} len=`expr $len - 1` done echo $rev_str | >>echo "Enter string" ...
echo "Enter string"
read str
len=`echo $str | wc -c`
while test $len -ne 0
do
temp_char=`echo $str | cut -c$len`
rev_str=${rev_str}${temp_char}
len=`expr $len - 1`
done
echo $rev_str
read str
len=`echo $str | wc -c`
while test $len -ne 0
do
temp_char=`echo $str | cut -c$len`
rev_str=${rev_str}${temp_char}
len=`expr $len - 1`
done
echo $rev_str
|
>>echo "Enter string"
输出:Enter string
>>read str
读入一个字串/字符
>>len=`echo $str | wc -c`
将输入的字串的长度赋值给变量len,以后引用该变量可以用$len
>>while test $len -ne 0
测试该变量len的数值是否为0而执行一些特定的操作(ne = Not Equal)
>>do
循环语句格式
>> temp_char=`echo $str | cut -c$len`
截取字符变量str的子串,赋值给temp_char
>> rev_str=${rev_str}${temp_char}
将两个变量$rev_str、$temp_char合并后赋值给变量rev_str
>> len=`expr $len - 1`
计算:将数字变量len减1
>>done
循环语句结束
>>echo $rev_str
显示字符变量rev_str是值
输出:Enter string
>>read str
读入一个字串/字符
>>len=`echo $str | wc -c`
将输入的字串的长度赋值给变量len,以后引用该变量可以用$len
>>while test $len -ne 0
测试该变量len的数值是否为0而执行一些特定的操作(ne = Not Equal)
>>do
循环语句格式
>> temp_char=`echo $str | cut -c$len`
截取字符变量str的子串,赋值给temp_char
>> rev_str=${rev_str}${temp_char}
将两个变量$rev_str、$temp_char合并后赋值给变量rev_str
>> len=`expr $len - 1`
计算:将数字变量len减1
>>done
循环语句结束
>>echo $rev_str
显示字符变量rev_str是值
|
给定一个字符串,比如zifuchuan作为read命令的输入.那么str的内容就是zifuchuan.
紧接着的len=`echo $str|wc -c`一句是将字符串str的长度求出来并赋值给len;这为后面的循环给定了初始值.
需要说明的是,read将结束输入的回车符也作为了一个字符.
while循环中每执行一次循环体就将len值减1;
第一次执行:len=10;test表达式为真,第一次时temp_char和rev_str变量都没有定义过,因而原值为空.
执行temp_char=`echo $str | cut -c$len`后是将$str的左边第$len个字符赋值给temp_char,这一次是将回车符给了temp_char.
执行rev_str=${rev_str}${temp_char}之后是将rev_str的值(字符串)与temp_char的值拼接起来赋值给rev_char.这一次是rev_char也为回车符;
len减1后为9;
第二次执行:len=9;test也为真;temp_char为$str的左边第9个字符(即为字符n);
"rev_str="一句之后rev_str为字符n;
len减1后为8;
第三次执行:len=8;test为真;temp_char为字符a;
rev_str为na;
len为7;
如此继续执行,到len=1;
test为真;temp_char为字符z;
rev_str为nauhcufiz;
len=0;
再下一次test为假,退出;
显示$rev_str,即输出为nauhcufiz
实际上这个程序通过每次将len减1而每次取str的左边第len个字符,由最后一个字符开始,依此拼接并赋值给rev_char;
也就是将字符串(read时输入的)倒转输出,的确很有趣,我刚刚学Linux,觉得很好玩,朋友你也是吗?
紧接着的len=`echo $str|wc -c`一句是将字符串str的长度求出来并赋值给len;这为后面的循环给定了初始值.
需要说明的是,read将结束输入的回车符也作为了一个字符.
while循环中每执行一次循环体就将len值减1;
第一次执行:len=10;test表达式为真,第一次时temp_char和rev_str变量都没有定义过,因而原值为空.
执行temp_char=`echo $str | cut -c$len`后是将$str的左边第$len个字符赋值给temp_char,这一次是将回车符给了temp_char.
执行rev_str=${rev_str}${temp_char}之后是将rev_str的值(字符串)与temp_char的值拼接起来赋值给rev_char.这一次是rev_char也为回车符;
len减1后为9;
第二次执行:len=9;test也为真;temp_char为$str的左边第9个字符(即为字符n);
"rev_str="一句之后rev_str为字符n;
len减1后为8;
第三次执行:len=8;test为真;temp_char为字符a;
rev_str为na;
len为7;
如此继续执行,到len=1;
test为真;temp_char为字符z;
rev_str为nauhcufiz;
len=0;
再下一次test为假,退出;
显示$rev_str,即输出为nauhcufiz
实际上这个程序通过每次将len减1而每次取str的左边第len个字符,由最后一个字符开始,依此拼接并赋值给rev_char;
也就是将字符串(read时输入的)倒转输出,的确很有趣,我刚刚学Linux,觉得很好玩,朋友你也是吗?
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。