1、进度条
代码:
运行过程及结果:
2、1到100的求和
1、
代码:
#!/bin/bash
sum=0
for i in {1..100}
do
let sum+=i
done
echo $sum
运行结果:
5050
2、
代码:
#!/bin/bash i=1 sum=0 while [ $i -le 100 ] do sum=$(( sum + i )) (( i++ )) done echo $sum
运行结果:
5050
3、
代码:
read val
i=1
sum=""
ret=0
while [ $i -le 100 ]
do
[ $i == 100 ] && {
sum=${sum}${i}
let ret+=$i
break
}
sum=${sum}${i}+
let ret+=$i
(( i++ ))
done
echo $sum=${ret}
运行结果:
4、递归实现
代码:
r#!/bin/bash
add=""
ret=0
function sum(){
local val=$1
[ $val != 1 ]||{
let ret+=1
add=`expr ${add}$1=`
return
}
add=`expr ${add}$1+`
let ret+=$val
(( val-- ))
sum $val
}
read var
sum $var
echo ${add}$ret
两次运行结果:
5.利用工具
3、从另一个文件读取数据,找出最大、最小及平均值
代码:
#!/bin/bash
max=0
min=0
sum=0
avg=0
count=0
while read line
do
[ "$line" == "" ] &&{
continue
}
[ $count == 0 ] && {
max=$line
min=$line
}
[ $max -lt $line ] && {
max=$line
}
[ $min -gt $line ] && {
min=$line
}
let sum=${sum}+${line}
(( count++ ))
done<math_file
printf "max: %d,min: %d,agv: %s\n" "${max}" "${min}" "`echo "ibase=10;scale=2;${sum}/ ${count}" | bc`"
运行结果:
4、斐波那契数列
1、
代码:
#!/bin/bash
read n
arr=(1 1)
count=2
function fib(){
local n=$1
if [ $1 -le 1 ];then
return 1
fi
while [ $count -le $1 ]
do
let arr[count]=arr[count-1]+arr[count-2]
(( count++ ))
done
}
fib $n
echo sum=${arr[$n]}
运行结果:
(该结果忽略了第一项)
2、
代码:
#!/bin/bash
read n
arr=(1 1)
if [ n == 1 ];then
echo ${arr[n]}
else
for (( i=2;i<=${n};i++ ))
do
let arr[i]=arr[i-1]+arr[i-2]
done
fi
echo sum=${arr[n]}
运行结果:
同上
3、递归实现(效率较低)
代码:
read n
fib1=0
fib2=0
fib_ret=0
function fib(){
local val=$1
if [ $val -eq 0 -o $val -eq 1 ];then
echo 1
# return //此处的return可有可无
else
fib1=$(fib $(($val-2)))
fib2=$(fib $(($val-1)))
let fib_ret=fib1+fib2
#fib_ret=$(( ${fib1} + ${fib2} ))
echo ${fib_ret}
fi
}
fib $n
运行结果:
结果同上
其实我们还可以把代码写的更加简洁一点,但本质上和上面是一样的
代码:
read n
fib1=0
fib2=0
fib_ret=0
function fib(){
local val=$1
if [ $val -eq 0 -o $val -eq 1 ];then
echo 1
# return
else
echo $(( $(fib $(($1-2))) + $(fib $(($1-1))) ))
fi
}
fib $n
运行结果:
结果同上
5、字符串截取
代码:
#!/bin/bash while read line do echo -n `echo $line | cut -c 9-`//使用cut工具截取 echo -n `echo $line | cut -c 5-8 | tr [a-z] [A-Z]` echo `echo $line | cut -c -4` done<cut_file
运行结果:
《完》
转载于:https://blog.51cto.com/lingdandan/1789769