练习题:函数和数组
目录
1、编写函数,实现打印绿色OK和红色FAILED
判断是否有参数,存在为Ok,不存在为FAILED
2、编写函数,实现判断是否无位置参数,如无参数,提示错误
3、编写函数实现两个数字做为参数,返回最大值
4、编写函数,实现两个整数位参数,计算加减乘除。
5、将/etc/shadow文件的每一行作为元数赋值给数组
6、使用关联数组统计文件/etc/passwd中用户使用的不同类型shell的数量
7、使用关联数组按扩展名统计指定目录中文件的数量
1、编写函数,实现打印绿色OK和红色FAILED
判断是否有参数,存在为Ok,不存在为FAILED
#!/bin/bash
if [ $1 ]thenecho -e "\\e[1;32m OK \\e[0m"
elseecho -e "\\e[1;31m FAILED \\e[0m"
fi
2、编写函数,实现判断是否无位置参数,如无参数,提示错误
#!/bin/bash
if [ $1 ]thenecho "There is a position parameter"
elseecho "Error,There is't any parameter"
fi
3、编写函数实现两个数字做为参数,返回最大值
#!/bin/bash
read -p "please input the first digital:" a
read -p "please input the second digital:" b
if [ $a -ge $b ];thenecho $a
elseecho $b
fi
4、编写函数,实现两个整数位参数,计算加减乘除。
#!/bin/bash
read -p "please input first digital:" a
read -p "please input first digital:" b
echo "a是$a,b是$b"
val=`expr $a + $b`
echo "a + b = $val"
val=`expr $a - $b`
echo "a - b = $val"
val=`expr $a \\* $b`
echo "a \\* b = $val"
val=`expr $a / $b`
echo "a / b = $val"
5、将/etc/shadow文件的每一行作为元数赋值给数组
#!/bin/bash
for line in `cat /etc/shadow`do array+=("$line")done
#for ((i=0;i<${#array[*]};i++))
# do
# echo ${array[$i]}
# done
#echo ${array[2]}
echo ${array[10]} #输出第9行的内容
6、使用关联数组统计文件/etc/passwd中用户使用的不同类型shell的数量
#!/bin/bash
declare -A array
for line in `cut -d: -f7 /etc/passwd`do let array[$line]+=1done
for i in ${!array[*]}do echo $i:${array[$i]}done
7、使用关联数组按扩展名统计指定目录中文件的数量
#!/bin/bash
declare -A array
read -p "please input the directory: " dir
if ! [ -d $dir ];thenecho "It's not a directory!"
elsefor line in `ls $dir`do let array[${line#*.}]+=1done
fifor i in ${!array[*]}doecho $i:${array[$i]}done