shell下的基础程序题练习

发布时间:2020-07-21 07:27:37 作者:mdd9502053669
来源:网络 阅读:543

1.简单的进度条程序

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文件中,然后通过行读取参数,进行判断和运算。





推荐阅读:
  1. shell脚本练习(12.7)
  2. SHELL脚本练习

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

进度条 各种求和 斐波那契数

上一篇:DHCP安全技术测试

下一篇:java基础之(注解,内部类,泛型,序列化,复制)集合

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》