- 论坛徽章:
- 0
|
原帖由 ttplayer2006 于 2009-11-14 15:12 发表 ![]()
把输入的参数放到char,然后把输入的参数个数放到numchars,但运行的结果与预期的不一致,哈,再次请教~~~
liangmingzhang@ubuntu:~$ vim ctype
char="$*"
numchars=$( echo "$char" | wc -c )
...
$ sh -x ctype c
+ char=c
++ echo c
++ wc -c
+ numchars=2
+ '[' 2 -ne 1 ']'
+ echo 'please input single char'
please input single char
+ exit 1
以上是你所写脚本分步执行情况,从中可以看出,是错误是出在 wc 这个命令上的...
因为:
-c, --bytes
print the byte counts
wc -c 是用来统计文本所含的字节的,“c”的字节为2,自然会出现与预期不同的结论了。
建议使用 -w 参数:
-w, --words
print the word counts
------------
$ cat ctype
char="$*"
numchars=$( echo "$char" | wc -w )
if [ "$numchars" -ne 1 ]
then
echo "please input single char"
exit 1
fi
#case "$char"
# [0-9]) echo number;;
# [a-z]) echo "Small char";;
# [A-Z]) echo "Big char";;
# *) echo "special char";;
#esac
$ ./ctype c
$
[ 本帖最后由 bier-linux 于 2009-11-14 16:08 编辑 ] |
|