shell脚本编写小程序

  1. 求1-100的加法,并输出1+2+3+4+5+6+7+…+100?
#!/bin/bash
sum=1
str='1'
i=2
for (( i; i<=100; i++))
do
    str=$str'+'$i
    let sum+=i
done
echo $str=$sum

因为‘+’不好处理,所以从2开始。
这里写图片描述

2.输入n个数字,判断最大最小值

#!/bin/bash
function myfun()
{
    max=$1
    min=$1
    i=0
    for i in $@
    do
        if [ $max -lt $i ]
        then
            let max=$i
        fi
        if [ $min -gt $i ]
        then
            let min=$i
        fi
    done

}
myfun $@
echo "max=$max, min=$min"

$@:命令行参数列表
$#:命令行参数个数
这里写图片描述
shell脚本的函数调用只需要函数名,函数名后面的参数可以被函数当做命令行参数,使用$@,$#,$1,$2…$9读取。

3.shell脚本编写进度条。

#!/bin/bash
i=0
flag=('|' '/' '-' '\')
arr=''
for ((i; i<=100; i++))
do
    printf "[%-100s] [%d%%] %s\r" "$arr" "$i" "${flag[i%4]}"
    arr=$arr'#'
    usleep 100000
done
printf "\n"

这里写图片描述
进度条分为三部分,‘#’部分,百分比显示,旋转的字符。
‘#’部分,需要提前预留好足够的位置,通过sleep控制时间让#逐渐显示,同时百分比也要改变。

4.计算平均值,并控制结果的精度。

#!/bin/bash
function avg()
{
    i=1
    max=$1
    min=$1
    sum=0
    for i in $@
    do
        let sum+=$i
        if [ $max -lt $i ]
        then
            max=$i
        fi
        if [ $min -gt $i ]
        then
            min=$i
        fi
    done
    echo "max=$max"
    echo "min=$min"
    echo "ibase=10;scale=2;$sum/$#" | bc
}
avg $@

命令:ibase=10,表示采用十进制
scale=2,表示精度为2
bc,Linux下的计算器
这里写图片描述

5.读取文件内容并对字符串进行分割与拼接。

#!/bin/bash
while read line
do
    part1=$(echo $line | cut -c 1-3)
    part2=$(echo $line | cut -b 4-6 | tr '[a-z]' '[A-Z]')
    part3=$(echo $line | cut -c 7-9)
    echo $part3$part2$part1
done < file

cut -c:按字符分割
cut -b:按字节分割
tr:将小写的[a-z]转化成大写的[A-Z]
拼接:$part3$part2$part1
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值