之前遇到过如何在shell中 获取一个变量的长度呢,直接想到了用 echo ${#VALID}。
后来想应该还有别的方法,下面把自己找到的方法,分享一下,供大家学习参考。
[root@MAGIC ~]# TEST_CHAR=kkkkkkk
[root@MAGIC ~]# echo $TEST_CHAR | wc -c
8
[root@MAGIC ~]# echo ${#TEST_CHAR}
7
[root@MAGIC ~]#
[root@MAGIC ~]# echo $TEST_CHAR | awk '{print length $0}'
7kkkkkkk
[root@MAGIC ~]# echo $TEST_CHAR | awk '{print length ($0)}'
7
[root@MAGIC ~]# expr length $TEMP_CHAR
expr: syntax error
[root@MAGIC ~]# echo `expr length $TEMP_CHAR`
expr: syntax error
[root@MAGIC ~]# echo `expr length '$TEMP_CHAR'`
10
[root@MAGIC ~]# expr length '$TEMP_CHAR'
10
解释:
可以发现 用 echo ${#TEMP_CHAR} 和 awk 的方法和我们要的实际结果一样,用wc -c 可能在计算的时候要 加入结尾符,所以比实际的长度多1。