Shell基本语法练习

Shell脚本语法练习

1. 计算1+2+3+4+…+100

#!/bin/bash
i=1
sum=0
while [ $i -le 100 ]
do
    let sum+=i
    let i++
done
echo $sum

2. 计算1+2+3+4+…+100,并将执行过程打出

#!/bin/bash
i=1
sum=0
echostr=''
while [ $i -le 100 ]
do
    let sum+=i
    if [ -z "$echostr" ]; then
        echostr=$i
    else
        echostr=$echostr'+'$i
    fi
    let i++
done
echo $echostr=$sum

3. 遍历命令行参数

#!/bin/bash
while [ $# -ne 0 ]
do
    echo $1
    shift 1  #命令行参数左移1位
done

4. 遍历数组

#!/bin/bash   
# 第一种方法,利用数组下标遍历,${#arr[@]}和${#arr[*]}都表示数组元素个数
arr=(10 b 3.14 'str')    
for (( i=0; i<${#arr[@]}; i++ ))
do
    echo "$i -> ${arr[i]}"
done

#!/bin/bash   
# 第二种方法,${arr[@]}和${arr[*]}都表示数组的所有元素,推荐第二种方法
arr=(10 b 3.14 'str')
for i in ${arr[@]}
do 
    echo $i
done

5. 计算一组数据的最大值,最小值,平均值

#!/bin/bash 

arr=(1 2 3 4 5 6 7 8 9)
let min=${arr[0]}
let max=${min}
sum=0
for (( i=0; i<${#arr[@]}; i++ ))
do
    if [ ${min} -gt ${arr[$i]} ]; then
        min=${arr[$i]}
    elif [ ${max} -lt ${arr[$i]} ]; then
        max=${arr[$i]}
    fi
    let sum+=${arr[$i]}
done
echo $min
echo $max
echo $sum
total=${#arr[@]}
echo "$sum/$total" | bc

6. 从屏幕上输入一个数字,计算斐波那契数列

#!/bin/bash 
arr[1]=1
arr[2]=1
i=0
read max
while [ $i -le $max ]
do
    let arr[$i+2]=arr[$i+1]+arr[$i]
    let i++
done
echo ${arr[$max]}

7. 进度条

#!/bin/bash
i=0
bar=""
label=("|" "/" "-" "\\")
while [ $i -le 100 ]
do
    printf "\033[35m[%-100s][%d%%][%c]\r\033[0m" "$bar" "$i" "${label[i%4]}"
    let i++
    bar=${bar}'#'
    sleep 0.1
done
printf "\n"

猜你喜欢

转载自blog.csdn.net/wei_cheng18/article/details/80929538
今日推荐