1. 程式人生 > >shell編程基礎一(多種方法求值1+2+..+100)

shell編程基礎一(多種方法求值1+2+..+100)

循環

#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編程重在思路、思維、方法。除了這些還要自己努力、堅持。


shell編程基礎一(多種方法求值1+2+..+100)