shell下的基础程序题练习-创新互联

1.简单的进度条程序

发展壮大离不开广大客户长期以来的信赖与支持,我们将始终秉承“诚信为本、服务至上”的服务理念,坚持“二合一”的优良服务模式,真诚服务每家企业,认真做好每个细节,不断完善自我,成就企业,实现共赢。行业涉及成都火锅店设计等,在网站建设全网整合营销推广、WAP手机网站、VI设计、软件开发等项目上具有丰富的设计经验。

shell下的基础程序题练习

lable数组 相当于进度条前进时,那个刷新的圆圈,进度条前进时显示进度,用count%显示

程序运行结果:shell下的基础程序题练习

2.1-100之间的求和

  1>用while实现             2>用for  in 实现

  shell下的基础程序题练习      shell下的基础程序题练习

 程序运行结果:

  shell下的基础程序题练习

3>递归实现

digui

 function add()

 {

 local val=$1

 local sum=0

 local add1=0

 local add2=0

 if [ $val -eq 1 ];then

  echo 1

  return

 fi

 add1=$val

 let val--

 add2=$(add $val)

 let sum=$add1+$add2

  echo $sum

}

 function main()

 {

  read n

  add $n

 }

 main

程序运行结果:

 shell下的基础程序题练习

4>利用seq 和bc 进行求和

 seq  n :生成到这个数的所有数

 |bc:利用|bc可以求和

例如:

shell下的基础程序题练习

所以1-100求和可以这样写:

shell下的基础程序题练习

其中tr表示替换,seq出来的所有数都有换行符,通过tr将'\n'替换为'+'。后面的sed 是将最后一个'+'号替换为'\n',再通过bc进行求和。

3.求第n个斐波那契数

 1>非递归实现

local 修饰的变量是局部变量

 86 function fib()

 87 {

 88  local val=$1

 89   while [ $val -eq 0 -o $val -eq 1 ]

 90  do

 91   echo 1

 92   return

 93  done

 94  i=1

 95  j=1

 96   while [ $val -ge 2 ]

 97   do

 99  let fibn=$i+$j

 100   i=$j

 101   j=$fibn

 102  ((val--))

 103  done

 105 }

 106 function main()

 107 {

 108  read n

 109  fib $n

 110  echo $fibn

 112 }

113 main

2>递归实现

思想:当n=1或者n=0时,return 1。因为第n个斐波那契数是第n-1个和第n-2个数之和,所以对传过来的n值先减1在递归保存值,再对n减1递归保存值,第n个就是两个保存者之和。

115 function fib()

116 {

117  local val=$1

118  local fib1=0

119  local fib2=0

120  fibc=0

121 if [ $val -eq 0 -o $val -eq 1 ];then

122 echo 1

123 return

124 fi

125 let val--

126 fib1=$(fib $val)

127 let val--

128 fib2=$(fib $val)

129 let fibc=$fib1+$fib2

130 echo $fibc

131

132 }

133

134 function main()

135 {

136  read n

137  fib $n

138

139 }

140 main

程序运行结果:

shell下的基础程序题练习

4.读取另外一文件里的数值,求出大值、最小值、和、平均值

  1 #!/bin/bash
 2
 3  max=0
 4  min=0
 5  count=0
 6  sum=0
 7  read name
 8  cat $name | while read line
 9  do
10  [ $count -eq 0 ] &&{
11    echo 'count'
12    max=$line
13    min=$line
14
15   }
16  [ $max -lt $line ] &&{
17   max=$line
18  }
19
20  [ $min -gt $line ] &&{
21  min=$line
22 }
23  let count++
24  let sum=sum+line
25  echo "max=$max" "min=$min" "sum=$sum"
26  let avg=${sum}/${count}
27  echo "avg=$avg"
28 done

程序运行结果:

shell下的基础程序题练习

shell下的基础程序题练习

cat $name 将其重定向到name文件中,然后通过行读取参数,进行判断和运算。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章题目:shell下的基础程序题练习-创新互联
文章起源:http://myzitong.com/article/eehgh.html