加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Shell语法训练

发布时间:2020-12-15 16:33:51 所属栏目:安全 来源:网络整理
导读:1. 计算出1+2+3+..+100的结果。可以使?用多种?方法解答。 str= "" sum= 0 for i in { 1. .100 }do if [ "X$str" = "X" ]; then str=$i else str=$st r"+" $i fi #let sum+=$i ((sum+=i))donestr=$st r"=" ${sum}echo $str 补充: 类C循环 for (( i= 0 ;i 10

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;31me[1;46m[%-100s][%d%%][%c]e[0mr" "$str" "$i" "${arr[$index]}"
    #printf "33[37;31;5m[%-100s][%d%%][%c]e[0m33[39;49;0mr" "$str" "$i" "${arr[$index]}"
    let i++
    str+="#"
    sleep 0.1
done

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

#!/bin/bash 
function avg()
{
    if [ $# -lt 1 ];then
        printf "pra al least 2 itemsn"
        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 $@

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读