第三次shell练习

第三次shell练习

例题1、

编写函数,实现打印绿色OK和红色FAILED
判断是否有参数,存在为Ok,不存在为FAILED

print ()
{
    if [ ! "$1" = "" ];
    then
        echo -e "有参数 :  \033[32m [OK] \033[0m"
    else
        echo -e "无参数 :  \033[31m [FALLED] \033[0m"
    fi
}
print $1

在这里插入图片描述

例题2、

编写函数,实现判断是否无位置参数,如无参数,提示错误

yum ()  
{
    if [ $# -eq 0 ];
    then
        echo "无位置参数 "
    else
        echo "位置参数为:$*" 
    fi
}
yum $1 

在这里插入图片描述

例题3、

编写函数实现两个数字做为参数,返回最大值

max ()
{
    if [ "$a" -gt "$b" ]
    then
        echo "参数1>参数2 值为:$a"
    elif [ "$a" -lt "$b" ]
    then
        echo "参数2>参数1 值为:$b"
    else
        echo "相等 值为:$a"
    fi   
}       
read -p " please input two number " a b  
max a b
~               

在这里插入图片描述

例题4、

编写函数,实现两个整数位参数,计算加减乘除。

compute ()
{
    echo "$a+$b=` expr $a + $b `"
    echo "$a-$b=` expr $a - $b `"
    echo "$a*$b=` expr $a \* $b `"
    echo "$a/$b=` expr $a / $b `"
}
read -p " please input two number " a b
compute $1 $2

在这里插入图片描述

例题5、

将/etc/shadow文件的每一行作为元数赋值给数组

func ()
{
    i=0
    while read line ;
    do
        arry[$i]=$line
        let i++
    done < /etc/shadow
}
func      
for i in ${arry[@]};
do        
    echo "$i" 
done    

在这里插入图片描述

例题6、

使用关联数组统计文件/etc/passwd中用户使用的不同类型shell的数量

declare -A count
func () 
{         
    while read line 
    do    
        type= `echo $line | cut -d: -f7`
        let count[$type]++
    done < /etc/passwd
}
func
for i in ${!count[*]}
do  
    echo "$i 的数量有:${count[$i]}" 
done

在这里插入图片描述

例题7、

使用关联数组按扩展名统计指定目录中文件的数量

declare -A arry
read -p " 请输入绝对路径" a 
cd $a
ls $1 | cut -d . -f2 >> /tmp/cishi.txt
while read line 
do
        type=${line##*.}
        let arry[$type]++
done</tmp/cishi.txt
for i in ${!arry[*]}
do
    echo "扩展名为$i的有${arry[$i]}"
done
rm -rf /tmp/cishi.txt

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值