shell练习-函数

目录

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

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

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

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

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


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

[root@client day1]# vim ex1.sh +
color () {
    if [ $# -ne 0 ]
    then
        echo -e "\033[32m OK \033[0m"
    else
        echo -e "\033[31m FAILAED \033[0m"
    fi
}
read -p "请输入参数:" a
color $a
[root@client day1]# chmod +x ex1.sh 
[root@client day1]# ./ex1.sh 
请输入参数:123
 OK 
[root@client day1]# ./ex1.sh
请输入参数:
 FAILAED 

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

[root@client day1]# vim ex2.sh +
fun () {
    if [ $# -eq 0 ]
    then
        echo "无参数"
    else
        echo "位置参数为$1" 
    fi
}
fun $1
[root@client day1]# chmod +x ex2.sh 
[root@client day1]# ./ex2.sh
无参数
[root@client day1]# ./ex2.sh a
位置参数为a

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

[root@client day1]# vim ex3.sh +
func () {
    if [ $a -gt $b ]
    then
        return $a
    elif [ $a -lt $b ]
    then
        return $b
    else
        echo "相等"
    fi
}
read -pread -p "请输入两个数:" a b
func $a $b
echo $?
[root@client day1]# chmod +x ex3.sh
[root@client day1]# ./ex3.sh 
请输入两个数:2 4
4
[root@client day1]# ./ex3.sh 
请输入两个数:9 3
9
[root@client day1]# ./ex3.sh 
请输入两个数:5 5
相等
0

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

[root@client day1]# vim ex4.sh +
intc () {
    echo "$x+$y=$[$x+$y]"
    echo "$x-$y=$[$x-$y]"
    echo "$x*$y=$[$x*$y]"
    echo "$x/$y=$[$x/$y]"
}
read -p "请输入两个参数:" x y
intc $x $y
[root@client day1]# chmod +x ex4.sh 
[root@client day1]# ./ex4.sh 
请输入两个参数:9 3
9+3=12
9-3=6
9*3=27
9/3=3

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

[root@client day1]# vim ex5.sh +
declare -A array                            
for i in `ls | cut -d. -f2`                 
do                                          
    let array[$i]++                         
done                                        
for sbub in ${!array[*]}                    
do                                          
    echo "扩展名:$i,对应数量为:${array[*]}"
done  
[root@client day1]# chmod +x ex5.sh 
[root@client day1]# ./ex5.sh 
扩展名:sh,对应数量为:5
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值