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脚本时遇到字符串转换整数的问题的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本调试

shell 脚本常用调试方法

我在将我的 bash 命令转换为 shell 脚本中的 shell 脚本语法错误时遇到错误

第八章 内部字段分隔符IFS脚本调试DEBUG

shell脚本的调试

在Linux下调试 Shell 脚本