题目
一、编写函数,实现打印绿色OK和红色FAILED
二、编写函数,实现判断是否有位置参数,如无参数,提示错误
三、编写函数实现两个数字做为参数,返回最大值
四、编写函数,实现两个整数为参数,计算加减乘除。
五、将/etc/shadow文件的每一行作为元数赋值给数组
六、使用关联数组统计文件/etc/passwd中用户使用的不同类型shell的数量
七、使用关联数组按扩展名统计指定目录中文件的数量
一、编写函数,实现打印绿色OK和红色FAILED
判断是否有参数,存在为Ok,不存在为FAILED
1、编写脚本
[root@client_2 homework5]# vim echo_color.sh
#!/bin/bash
echo_color() {
if [ $# -eq 0 ];then
echo -e "\e[31mFAILED\e[0m"
else
echo -e "\e[32mOK\e[0m"
fi
}
echo_color $@
2、加可执行权限
[root@client_2 homework5]# chmod a+rx echo_color.sh
3、测试
二、编写函数,实现判断是否有位置参数,如无参数,提示错误
1、编写脚本
[root@client_2 homework5]# vim if_no_param.sh
#!/bin/bash
if_no_param() {
if [ $# -eq 0 ];then
echo "error:There are no parameters"
fi
}
if_no_param $@
2、加可执行权限
[root@client_2 homework5]# chmod a+rx if_no_param.sh
3、测试
三、编写函数实现两个数字做为参数,返回最大值
1、编写脚本
[root@client_2 homework5]# vim max_num.sh
#!/bin/bash
max_num() {
if [ $# -ne 2 ];then
echo "must have only 2 parameters"
elif ! expr $1 + $2 &> /dev/null;then
echo "the 2 parameters must be integer"
else
if [ $1 -gt $2 ];then
echo $1
else
echo $2
fi
fi
}
max_num $@
2、加可执行权限
[root@client_2 homework5]# chmod a+rx max_num.sh
3、测试
四、编写函数,实现两个整数为参数,计算加减乘除。
1、编写脚本
[root@client_2 homework5]# vim calculation.sh
#!/bin/bash
calculation() {
if [ $# -ne 2 ];then
echo "must have only 2 parameters"
elif ! expr $1 + $2 &> /dev/null;then
echo "the 2 parameters must be integer"
else
echo "$1+$2=$[$1+$2]"
echo "$1-$2=$[$1-$2]"
echo "$1*$2=$[$1*$2]"
echo "$1/$2=$[$1/$2]"
fi
}
calculation $@
2、加可执行权限
[root@client_2 homework5]# chmod a+rx calculation.sh
3、测试
五、将/etc/shadow文件的每一行作为元数赋值给数组
1、编写脚本
[root@client_2 homework5]# vim array_shadow.sh
#!/bin/bash
array=(`cat /etc/shadow`)
echo ${#array[@]}
2、加可执行权限
[root@client_2 homework5]# chmod a+rx array_shadow.sh
3、测试
六、使用关联数组统计文件/etc/passwd中用户使用的不同类型shell的数量
1、编写脚本
[root@client_2 homework5]# vim shell_count.sh
#!/bin/bash
declare -A array
for line in `cut -d: -f7 /etc/passwd`
do
let array[$line]+=1
done
for index in ${!array[*]}
do
echo $index:${array[$index]}
done
2、加可执行权限
[root@client_2 homework5]# chmod a+rx shell_count.sh
3、测试
七、使用关联数组按扩展名统计指定目录中文件的数量
1、编写脚本
[root@client_2 homework5]# vim file_count.sh
#!/bin/bash
declare -A array
read -p "please input a directory path:" dir
if ! [ -d "$dir" ];then
echo "your input is not a directory"
else
for i in `ls $dir`
do
let array[${i#*.}]+=1
done
fi
for index in ${!array[*]}
do
echo "$index:${array[$index]}"
done
2、加可执行权限
[root@client_2 homework5]# chmod a+rx file_count.sh
3、测试
over~