首页 > 系统服务 > 详细

shell编程expr表达式----传智播客的书linux编程基础中出现的问题

时间:2019-07-18 14:38:21      阅读:93      评论:0      收藏:0      [点我收藏+]

首先声明:本人是传智播客的粉丝,拥有他出的多本编程书籍,此文绝无诋毁抹黑之意。

但在linux系统编程第88页给出的while循环范例中,代码运行无法得到预期结果

原代码如下

#!/bin/sh

sum=0

count=1

while [ $count -le 100 ]

do

  sum=expr $sum+$count

      count=expr $count + 1

done

echo "sum=$sum"

exit 0

书中给出的结果是5050,显然这是一个从1循环到100的加运算

but 事实很打脸,运行后始终提示:

技术分享图片

修改后的代码

#!/bin/sh
sum=0
count=1
while [ $count -le 100 ]
do
   sum=$(expr $sum + $count) #尤其注意!表达式中 运算符前后要有空格否则无法正常运行,说人话就是 $sum空格+空格$count
   count=$(expr $count + 1)
done
echo "sum=$sum"
exit 0

 until的例子也是如此

#!/bin/sh
i=0
until [ $i -gt 5 ]
do
 i=$(expr $i + 1)
 echo "${i}"
done
exit 0

技术分享图片

 

shell编程expr表达式----传智播客的书linux编程基础中出现的问题

原文:https://www.cnblogs.com/saintdingspage/p/11206561.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!