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


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

    但在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

  • 相关阅读:
    *1408素数回文数的个数
    *1406单词替换
    1404我家的门牌号
    1402Vigenère密码(Noip2012提高组第1题)
    1401机器翻译(Noip2010提高组第1题)
    AcWing
    模板
    The 2019 Asia Nanchang First Round Online Programming Contest
    模板
    模板
  • 原文地址:https://www.cnblogs.com/saintdingspage/p/11206561.html
Copyright © 2020-2023  润新知