Chinaunix首页 | 论坛 | 博客
  • 博客访问: 585151
  • 博文数量: 57
  • 博客积分: 877
  • 博客等级: 准尉
  • 技术积分: 1275
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-24 16:16
文章分类

全部博文(57)

文章存档

2014年(2)

2013年(15)

2012年(20)

2011年(20)

我的朋友

分类: LINUX

2011-11-08 11:16:41

     今天在在群上有人说怎么在shell中 获取一个变量的长度呢,当时我就直接想到了用 echo ${#VALID},我想应该还有别的方法,在网上搜了一下,学到不少方法,下面一一展示
    
  1. [root@MAGIC ~]# TEST_CHAR=kkkkkkk
  2. [root@MAGIC ~]# echo $TEST_CHAR | wc -c
  3. 8
  4. [root@MAGIC ~]# echo ${#TEST_CHAR}
  5. 7
  6. [root@MAGIC ~]#
  7. [root@MAGIC ~]# echo $TEST_CHAR | awk '{print length $0}'
  8. 7kkkkkkk
  9. [root@MAGIC ~]# echo $TEST_CHAR | awk '{print length ($0)}'
  10. 7
  11. [root@MAGIC ~]# expr length $TEMP_CHAR
  12. expr: syntax error
  13. [root@MAGIC ~]# echo `expr length $TEMP_CHAR`
  14. expr: syntax error
  15. [root@MAGIC ~]# echo `expr length '$TEMP_CHAR'`
  16. 10
  17. [root@MAGIC ~]# expr length '$TEMP_CHAR'
  18. 10
由上面可以发现 用 echo ${#TEMP_CHAR} 和 awk 的方法和我们要的实际结果一样,用wc -c 可能在计算的时候要 加入结尾符,所以比实际的长度多1
阅读(11066) | 评论(2) | 转发(1) |
给主人留下些什么吧!~~

jjg62563082011-11-10 20:12:11

CollinX: echo -n 就不差了.....
恩,是的 echo -n 加了以后是正常了,我man echo 了一下,发下-n 参数是去掉换行符。。。。。多谢指点哈。。。

CollinX2011-11-09 18:44:45

echo -n 就不差了