標籤:shell
#!/bin/bash#斐波那契數列#不要用遞迴,深度大於30就老火了。function fun_test(){ if [ $1 -lt 3 ];then echo 1 return fi sum1=1 sum2=1 let count=$1-2 sum=0 while [ $count -gt 0 ];do let count-- let sum=sum1+sum2 let sum1=sum2 let sum2=sum done echo $sum}val=$(fun_test $1)echo $val#!/bin/bash求輸入的一串數字中的最大數,最小數以及平均數(保留2位小數)Maxsum=$1Minsum=$1sum=$1count=$#shift 1while [ $# -gt 0 ];do if [ $Maxsum -lt $1 ];then let Maxsum=$1 fi if [ $Minsum -gt $1 ];then let Minsum=$1 fi let sum+=$1 shiftdoneecho "Max::" "$Maxsum"echo "Min::" "$Minsum"val=`echo "scale=2;$sum/$count" | bc`echo "pingjun::" "$val"#!/bin/bash#遞迴目前的目錄下面所有目錄檔案。function fun_test(){ ls $1 | while read line do DIR="$1/$line" if [ -d $DIR ];then echo "dir: " "$DIR" fi [ -d $DIR ] && { fun_test $DIR } done}fun_test .//最好使用單引號,這更加符合標準,然後加上-E選項或者egrep。.匹配任意一個字元,只要在行裡麵包含這個模式就會按該行展示。[]匹配括弧中的任意一個字元,[abc]就只能匹配a或者b或者c一個字元。[-]在括弧內表示範圍,echo "test" | grep -E ‘tes[a-z]‘[^]在括弧裡面的取相反的結果。[[:alpha:]]匹配一個字母。?匹配前面的單元一次或者零次。+匹配它前面的單元一次或者多次。*緊跟它前面的單元匹配零次或者多次。{n}在-E選項中不需要使用\,表示前面這個單元重複n次,包括前面這個單元。{n,m}重複前面單元n到m次,也包括前面這個單元。{n,}重複前面這個單元至少n次。{,n}重複前面這個單元最多n次。上面這四個Regex都是閉包的。^匹配行首的位置。$匹配行未的位置。<匹配單詞開始的地方。>匹配單詞結束的地方。<>匹配一個單詞。\b匹配單詞開頭或者結束的位置。\B匹配非單詞開始或者結束的位置。^$匹配空行的位置。
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
Shell指令碼編程篇