RHEL环境下调试Shell脚本时遇到字符串转换整数的问题
Posted zlg88
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RHEL环境下调试Shell脚本时遇到字符串转换整数的问题相关的知识,希望对你有一定的参考价值。
字符串转整型!这种需求应该在编程语言里很常见,Shell里就太麻烦了。有人问为什么要转换?我遇到的问题是参数数量$#需要进行整型运算,而$#取出来的却是字符串,以下为证:
if [ $# != 1 ] ; then
......
fi
这里只能用!=,=,==字符串的比较符,而使用-eq,-lt这些整数比较符就报错了。需要用来做运算就必需转换为整型,在网上查了半天然后问了一大圈朋友,得到的方法却是这样的
i=`expr $# + 0 `
这种方法确实有点搞笑了,但好象真的没有其它更好的办法了!
还要注意的是if条件是整数比较时必需用双方括号,例如:
i=`expr $# + 0 `
j=`expr $i + 1 `
if [[ i -lt j ]] ; then
......
fi
而字符串比较时则是使用单方括号,例如上面第一个例子。
以上是关于RHEL环境下调试Shell脚本时遇到字符串转换整数的问题的主要内容,如果未能解决你的问题,请参考以下文章