Shell语法训练

前端之家收集整理的这篇文章主要介绍了Shell语法训练前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1. 计算出1+2+3+..+100的结果。可以使⽤用多种⽅方法解答。

str=""
sum=0
for i in {1..100}
do
    if [ "X$str" = "X" ]; then
       str=$i 
    else
        str=$str"+"$i
    fi
#let sum+=$i
((sum+=i))
done

str=$str"="${sum}
echo $str

补充:
类C循环

for (( i=0;i<10;i++ ))
do
    echo "$i"
done
#############################
i=0
sum=0
while [ $i -lt 100 ]
do
    ((i=i+1))
    ((sum+=i))
done
echo $sum

2. 利⽤用shell编写进度条

i=0
str=""
arr=("|" "/" "-" "\\")
while [ $i -lt 100 ]
do
    let index=$i%4
    printf "\e[1;31m\e[1;46m[%-100s][%d%%][%c]\e[0m\r" "$str" "$i" "${arr[$index]}"
    #printf "\033[37;31;5m[%-100s][%d%%][%c]\e[0m\033[39;49;0m\r" "$str" "$i" "${arr[$index]}"
    let i++
    str+="#"
    sleep 0.1
done

3. 传⼊入⾄至少三个数字参数到脚本file,并计算出最⼤大,最⼩小,平均值。需要判断 传⼊入的数字是否⾜足够,否则输出警告信息。平均值保留两位⼩小数。

#!/bin/bash 
function avg()
{
    if [ $# -lt 1 ];then
        printf "pra al least 2 items\n"
        return 
    fi

    min=$1
    max=$2

    i=0
    for i in $@
    do
        [ $min -gt $i ]&& min=$i
        [ $max -lt $i ]&& max=$i
        let av+=$i
    done


    echo "min :$min"
    echo "max : $max"

    name=$(echo "ibase=10; scale=2; $av/$#" |bc)
    echo "avg:$name"
}


avg $@

猜你在找的Bash相关文章