shell--简单练习题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell--简单练习题相关的知识,希望对你有一定的参考价值。
一、计算1+2+...+100的值
采用一般方法:
#! /bin/bash sum=0 res="" num=1 for ((; num<=100; num++)) do let sum+=num [ $num -eq 100 ]&&{ res=${res}${num} break } res=${res}${num}‘+‘ done echo ${res}=${sum}
结果如下:
使用递归方法:
1 #! /bin/bash 2 3 read num 4 5 sum=0 6 function add() 7 { 8 num1=$num 9 [ $num -le 1 ]&&{ 10 echo "$num" 11 return 12 } 13 14 let num-- 15 tmp=$(add $num) 16 let sum=$num1+$tmp 17 echo "$sum" 18 } 19 20 add $num
结果如下:
二、费谱那锲数
(1)采用数组方法:(保存了算出的每个数)
1 #! /bin/bash 2 3 read val 4 arr[0]=1 5 arr[1]=1 6 i=0 7 while [ $i -le $val ] 8 do 9 let arr[i+2]=arr[i+1]+arr[i] 10 let i++ 11 done 12 13 echo ${arr[val]}
结果如下:
(2)使用递归方法:(效率低)
1 #! /bin/bash 2 3 read num 4 5 function fib() 6 { 7 [ $num -le 1 ]&&{ 8 echo "$num" 9 return 10 } 11 12 let --num 13 val1=$(fib $num) 14 let --num 15 val2=$(fib $num) 16 let val=$val1+$val2 17 echo "$val" 18 } 19 20 fib num
结果如下:
三、字符串拼接
栗子代码:
1 #! /bin/bash 2 3 while read line 4 do 5 str1=$(echo $line|cut -c 1-3) 6 str2=$(echo $line|cut -c 4-6|tr ‘[a-z]‘ ‘[A-Z]‘) 7 str3=$(echo $line|cut -c 7-9) 8 echo ${str3}${str2}${str1} 9 done<file
结果如下:
四、模拟一个简单的进度条
栗子代码:
1 #! /bin/bash 2 3 val=100 4 str="" 5 arr=(‘|‘ ‘/‘ ‘-‘ ‘\\‘) 6 for((i=1; i<=val; i++)) 7 do 8 str+="#" 9 let index=i%4 10 printf "[%-100s] [${i}%%] [${arr[$index]}] \r" "${str}" 11 sleep 0.5 12 done 13 printf"\n"
结果如下:
五、求文件里数字的最大最小值
栗子代码:
1 #! /bin/bash 2 3 count=0 4 while read line 5 do 6 let count++ 7 [ $count -eq 1 ]&&{ 8 min=$line 9 max=$line 10 } 11 [ $max -lt $line ]&&{ 12 max=$line 13 } 14 15 [ $min -gt $line ]&&{ 16 min=$line 17 } 18 done<file 19 echo min=$min,max=$max
结果如下:
本文出自 “GREEN” 博客,请务必保留此出处http://green906.blog.51cto.com/10697569/1791715
以上是关于shell--简单练习题的主要内容,如果未能解决你的问题,请参考以下文章