1,编写函数,实现打印绿色OK和红色FAILED
判断是否有参数,存在为Ok,不存在为FAILED
print()
{
if [ "$var" != "" ];then
echo -e "\e[1;32m OK \e[0m"
else
echo -e "\e[1;31m failed \e[0m"
fi
return
}
read -p "请输入一个数:" var
print $var
2,编写函数,实现判断是否无位置参数,如无参数,提示错误
locad()
{
if [ "$*" = "" ];then
echo "error"
else
echo "$var"
fi
return
}
read -p "请输入一个参数:" var
locad $var
3,编写函数实现两个数字做为参数,返回最大值
bigger()
{
if [ "$1" -lt "$2" = true ];then
echo "$1"
else
echo "$2"
fi
return
}
read -p "请输入两个整数:" var
bigger $var
4,编写函数,实现两个整数位参数,计算加减乘除。
alg()
{
add=`expr $1 + $2`
echo "$1 + $2 = $add"
sub=`expr $1 - $2`
echo "$1 - $2 = $sub"
mul=`expr $1 \* $2`
echo "$1 * $2 = $mul"
div=`expr $1 / $2`
echo "$1 / $2 = $div"
}
read -p "请输入两个整数:" var
alg $var
5,将/etc/shadow文件的每一行作为元数赋值给数组
j=0
for i in `cat /etc/shadow`
do
array[$j]=$i
let j++
done
read -p "请输入行数:" line
echo ${array[$line]}
6,使用关联数组统计文件/etc/passwd中用户使用的不同类型shell的数量
declare -A stats
while read line
do
type=`echo $line | cut -d: -f7`
let stats[$type]++
done < /etc/passwd
for i in ${!stats[*]}
do
echo "$i : ${stats[$i]}"
done
7,使用关联数组按扩展名统计指定目录中文件的数量
declare -A array
for i in `ls | awk -F. '{print $2}'`
do
let array[$i]=array[$i]+1
done
for j in ${!array[*]}
do
echo "$j:${array[$j]}"
done