#SHELL编程基础一(多种方法求值1+2+..+100)
##为什么要学好shell
shell脚本语言是实现linux系统管理及自动化运维所必备的重要工具,linux系统的底层及基础应用软件的核心大都涉及shell脚本的内容。
每一个合格的linux系统管理员或运维工程师,都需要能够熟练地编写shell脚本语言,并能够阅读系统及各类软件附带的shell脚本内容。
只有这样才能提升运维人员的工作效率,适应日益复杂的工作环境,减少不必要的工作,从而为个人的职场发展奠定较好的基础。
#
本文的宗旨是熟悉shell编程中的for语句、while语句及until等语句的使用语法和应用方法。
##shell实现
###1、for循环
#!/bin/sh
sum=0 <==定义一个变量sum
for n in{1..100};do <==变量名n从1到100中取值
let sum=$sum+$n <==let运算
done
echo $sum <==循环结束
#
n的取值范围可以用其他方法代替。如:seq 100(命令要加反引号“)
算法也可以用很多方法:(())、expr。
#
#!/bin/sh
j=0
for ((i=0;i<=100;i++));do <==第一个是变量初始化,第二个是变量的范围,第三个是变量自增或自减
((j=j+i))
done
echo $j
#
###2、while循环
i=1
while((i <=100));do <==当i不符合条件的时候退出循环。
((j=j+i))
((i++))
done
echo $j
#
###3、until循环
i=1
until((i >100));do <==当i符合条件的时候退出循环。与while相反。
((j=j+i))
((i++))
done
echo $j
#
##非shell脚本实现
之前我们学过一些命令也可以实现1+2+..+100的求和,这里带大家回顾一下
#
1、echo {1..100}|tr ” ” “+”|bc
说明:tr 替换 这里实现的是把空格替换成+,然后通过管道传给下一个
bc:linux中的计算器,支持整数计算
#
2、seq -s + 1 1 100|bc
说明 :seq -s 指定分隔符
1 1 100
第一个1是初始值,第二个是步长值,第三个是结束值
#
博主刚开始学shell编程,水平有限。必然还有其他算法,希望各位高手多赐教。学习shell编程重在思路、思维、方法。除了这些还要自己努力、坚持。