# 练习1:进度条
i=0
bar=''
lable=("|" "/" "-" "\\")
while [ $i -le 100 ]
do
printf "[%d%%][%c]%s\r" "$i" "${lable[i%4]}" "$bar"
let i++
bar=${bar}'#' # 字符串拼接
sleep 0.1 # shell 中按秒计算
done
printf "\n"
# 练习2:传入至少3个参数,计算最大最小和平均值
# 需判断传入的参数个数是否足够,否则输出警告
# 平均值保留两位有效小数
if [ $# -lt 3 ];then
echo "参数太少"
exit 1
fi
max=$1
min=$1
sum=0
for i in $@
do
[ $i -lt $min ] && min=$i
[ $i -gt $max ] && max=$i
let sum=$sum+$i
done
echo "min="$min
echo "max="$max
# # 使用命令代换(这里使用反引号),bc是计算器
# # ibase=10:按十进制计算,scale=2:保留两位小数
avg=`echo "ibase=10;scale=2;$sum/$#" | bc`
echo $avg
# 练习3:有一列数字如下
# 第一次:1 第二次:2 第三次:3 第四次:5
# 第五次:8 第六次:13...
# 求第100次的数
arr[0]=1
arr[1]=2
for (( i=2;i<=99;i++ ))
do
#(( arr[$i]=${arr[$i-1]}+${arr[$i-2]} ))
arr[$i]=`expr ${arr[$i-1]} + ${arr[$i-2]}`
done
echo ${arr[99]}
# 练习4:文件内容如下:123abc456 456def123
# 要求输出:456ABC123 123DEF456
input="123abc456"
sub1=${input:0:3}
sub2=${input:3:3}
sub3=${input:6:3}
tmp=$sub3$sub2$sub1
echo $tmp | tr 'a-z' 'A-Z'
shell学习笔记---简单练习
猜你喜欢
转载自blog.csdn.net/qq_40927789/article/details/80699841
今日推荐
周排行