思路集锦:
①.C语言型for循环结构及(())计算式shell脚本

[oldboy@student ~]$  cat for1.sh 
#!/bin/sh
j=0
for((i=0; i<=100; i++))
do
    ((j=j+i))
done
echo $j

写成一行的命令行写法:

for((i=0; i<=100; i++));do ((j=j+i));done;echo $j

expr的效率低于(()),计算1加到100就有明显感觉。
③.使用seq命令加for循环语法及let命令计算式脚本
[oldboy@student ~]$  cat for3.sh 
#!/bin/bash
sum=0
i=1
for i in `seq 100`
do
   let sum=sum+i
done

echo $sum

#!/bin/bash

let a=5+4 b=9-3

echo $a $b

#!/bin/bash

let "t1 = ((a = 5 + 3, b = 7 - 1, c = 15 - 4))"

echo "t1 = $t1, a = $a, b = $b"

let 为内建的整数运算

let 命令not found的时候,sudo dpkg-reconfigure dash

提示:seq命令的语法:
1.生成序列[1…LAST]
seq LAST 
例:seq 5 表示序列为 1 2 3 4 5
[oldboy@student ~]$  seq 5
1
2
3
4
5

2. 生成序列[FIRST…LAST],步长为1
seq FIRST LAST
例:seq 2 5表示序列为  2 3 4 5
[oldboy@student ~]$  seq 2 5
2
3
4

5

3.生成序列[FIRST…LAST],步长为INCREMENT
seq FIRST INCREMENT LAST
例:seq 2 2 5表示序列为  2 4 
[oldboy@student ~]$  seq 2 2 5
2
4

qustdjx@qustdjx-K42JZ:~/test$ seq 2 3 5
2
5

④.seq、tr、sed、bc联手完成计算的方法
[oldboy@student ~]$  seq 100 | tr '\n' '+'|sed 's#\+$#\n#g'|bc
5050
老男孩提示:
1)注意bc命令的计算用法。
2)注意seq、tr、sed 3个命令的用法。
3) 命令解释说明:
1.seq 100         ==>竖排打印1...100个数字。
2.tr '\n' '+'     ==>把1...100个数字的结尾换行标签全部换成加号,即得1+2+3...+100+。
3.sed 's#\+$#\n#g'==>拼接的字符串表达式结尾加号替换为换行(回车)符。
4.bc    ==>交给bc计算
qustdjx@qustdjx-K42JZ:~/test$ echo '4+8' |bc
12

⑤.(())的其它写法
[oldboy@student ~]$  cat for4.sh 
#!/bin/bash
sum=0
for((i=1;i<=100;i++))
do
        sum=$((i+sum))
done
echo $sum
[oldboy@student ~]$  cat for5.sh 
sum=0
for((i=1;i<=100;i++))
do
        sum=$((i+$sum))
done
echo $sum
提示:以上两结果都是对的

⑥.使用until语句及(())计算
[oldboy@student ~]$  cat until-1.sh 
#!/bin/sh
i=1
until ((i >100 ))
do
  ((j=j+i))
  ((i++))
done
echo $j

⑦.使用while循环语句计算
[oldboy@A ~]$ cat while-1.sh 
#!/bin/sh
i=1
while ((i <=100 ))
do
 ((j=j+i))
 ((i++))
done
echo $j
--------------
[oldboy@student ~]$  cat while-3.sh 
#!/bin/sh
i=1
while [ $i -le 100 ] #same as while [[ $i -le 100 ]] or while [[ $i -le 100 ]]
do
  let j=j+i
  i=`expr $i + 1`    #same as ((i++)) or  let i=i+1
done
echo $j

⑧.使用数学公式直接计算※※※※※
[oldboy@student ~]$  cat gongshi.sh 
#!/bin/sh
i=100
echo $((i*(i+1)/2))
---------
[oldboy@student ~]$  cat gongshi-2.sh 
#!/bin/sh
i=100
((sum=i*(i+1)/2))
echo $sum
---------
[oldboy@student ~]$  echo $((100*(100+1)/2))
5050

3)在计算时,(())计算式比let,expr等更有效率。
-------------------------------------------------
⑨.拼接字符串计算表达式后结合bc求和计算方法
[oldboy@student ~]$  cat chars.sh 
#!/bin/sh
chars=0
for ((i=1; $i<=100; i++ ));do
chars="$chars+$i"
done
echo $chars|bc 
-------------------------------------------------
⑩.使用seq和awk实现
[oldboy@student ~]$  seq 100 |awk '{total+=$1} END {print total}'
5050
[oldboy@student ~]$  seq 100 |awk '{total=total+$1} END {print total}'
5050
-------------------------------------------------
①①.{}数字列表结合tr、bc方法
[oldboy@student ~]$  echo {1..100}|tr " " "+"|bc
5050

老男孩提示:
1){ }序列的用法
[oldboy@student ~]$  echo {1..10}
1 2 3 4 5 6 7 8 9 10
[oldboy@student ~]$  echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z

2)seq默认情况只能是竖立排序列(以\n为分隔符号)
[oldboy@student ~]$  seq 3
1
2
3
加个-s分隔符参数看看:
[oldboy@student ~]$  seq -s " " 3
1 2 3
提示:seq仅支持打印数字序列,不支持字符等。

①②.{}数字列表结合awk方法
[oldboy@student ~]$ echo {1..100}|tr " " "\n"|awk '{total+=$1} END {print total}'
5050
-------------------------------------------------
①③.{}数字列表for循环及计算命令方法
[root@student scripts]# cat for6.sh 
#!/bin/sh
sum=0
for num in `echo {1..100}`
do
    sum=`expr $sum + $num`
done
echo $sum
-------------------------------------------------
①⑤.seq结合bc较少字符计算方法(压轴了,最少字符实现方法)
[oldboy@student ~]$ seq -s + 100|bc
5050
[oldboy@student ~]$ seq -s "+" 100|bc
5050

(())、let、expr、bc等计算命令的使用语法和应用技巧相关推荐

  1. 【学习笔记】 pytorch的使用语法和代码实例

    数据类型 ( 1) torch.FloatTensor : 用于生成数据类型为浮点型的Tensor ,传递给torch.FloatTensor的参数可以是一个列表,也可以是一个维度值. torch.r ...

  2. linux echo命令做运算,linux常用计算命令

    一.bc 命令 常用参数选项: -i:强制进入交互式模式: -l:定义使用的标准数学库: -w:对POSIX bc的扩展给出警告信息: -q:不打印正常的GNU bc环境信息: -v:显示指令版本信息 ...

  3. 用 Photoshop 计算命令优化美女照片皮肤

    因为原照片明暗对比过强,我们用Photsohop将人物的肤色处理得通透一点. 但是用一般的方法很容易过曝,这里我们用Photsohop的计算命令来做,供大家参考. 原图如下: 原图 肤色提亮之后 最终 ...

  4. 如何用计算机cmd算数,计算命令:怎么在CMD的计算器命令是什么?

    计算命令:怎么在CMD的计算器命令是什么? 阿门风水网小编 2020-08-16 16:09:31 怎么在CMD的计算器命令是什么?A算式例set/A3*9具体用法()-分组!~--一元运算符*/%- ...

  5. maple 假设_Maple常用计算命令..

    常用计算命令 < Maple 指令> 7.0 版本 第 1 章 章数 1.1 复数 Re,Im - 返回复数型表达式的实部 / 虚部 abs - 绝对值 函数 argument - 复数的 ...

  6. PS图像菜单下计算命令

    PS图像菜单下计算命令通过通道的混合模式得到的选区非常精细,从而调色的时候过度非常好.功能十分强大.   下面用计算命令中的"相加"和"减去"模式做实例解析,这 ...

  7. 4.24 使用计算命令制作图像合成艺术效果 [原创Ps教程]

    原文:http://coolketang.com/staticPhotoshop/5a98d43d9f54544201615c68.html 1. 本节课程将为您演示,如何使用[计算]命令,将两张示例 ...

  8. 通过cmd命令,使Scite在windows下构建,并安装lua环境与中文乱码问题

    通过cmd命令,使Scite在windows下构建,并安装lua环境与中文乱码问题 Scite工具下载与安装 https://scite.en.softonic.com/download 1.下载完后 ...

  9. 2000-2018年融资约束SA指数计算命令和数据

    数据集名称:融资约束SA指数计算命令和数据 时间范围:2000-2018年 数据来源:Wind 相关说明: 变量融资约束的衡量方法较多 ,但大部分方法均依赖于具有内生性的财务指标,而非直接与融资约束产 ...

最新文章

  1. java怎么求两组整数的或集,确定整数是否在具有已知值集的两个整数(包括)之间的最快方法...
  2. 未找到beta版怎么解决_刚刚,谷歌正式发布Android 11 Beta版,带来多项重磅更新...
  3. OpenCV源码中Haar训练及特征提取的代码说明
  4. Softmax 函数的特点和作用是什么?
  5. YII1 MVC初认识(二)
  6. cfb为什么不需要填充_为什么很多高中生数学成绩不理想,需要补课?因为不熟练啊!...
  7. 当阿里不想赚钱了,生意该怎么做?
  8. 银行IT迎“高景气”时代,宇信科技如何领跑行业?
  9. 《SAS编程与数据挖掘商业案例》学习笔记之五
  10. kafka java 多线程_20. 多线程开发者实例
  11. python用什么软件编程-python开发用什么编辑器
  12. Java 对象不使用时,为什么要赋值为 null?
  13. ad17 linux 版本,Altium Designer这些不同版本的软件之间的区别有多大呢?
  14. maxon motor 471486电机
  15. Froala Editor 2.8.1破解过程
  16. 把Date类型的Fri Feb 01 00:00:00 CST 2019转换成yyyy-MM-dd格式
  17. 易基因|3文一览:ChIP-seq技术在植物转录因子结合位点中的研究(茄子+玉米+水稻)
  18. Abp 微信小程序登录 基本的流程和实践
  19. 3、Maven核心程序解压与配置
  20. 软考中计算机软件考什么,计算机软考要考什么

热门文章

  1. Python使用wordnet工具计算词集与词条基本用法(二)
  2. pandas dataframe随机采样
  3. 服务器并发性能报告,一般的服务器瞬时并发应该怎么样才算是合格呢?
  4. 逆波兰计算器android源码简书,汪都能理解的逆波兰计算器(C++实现)
  5. mysql 创建用户并授权_教你MySQL-8.0.x数据库授权
  6. Ping突然出现请求超时的问题
  7. EMS批量为用户分配邮箱
  8. 免费电子书:Azure Web Apps开发者入门
  9. 团队开发冲刺1.2(2015.5.10)
  10. 一个轻量级javascript框架的设计模式