目录
6、使用关联数组统计文件/etc/passwd中用户使用的不同类型shell的数量
1、编写函数,实现打印绿色OK和红色FAILED
判断是否有参数,存在为Ok,不存在为FAILED
#!/bin/bash
if [ $1 ]
then
echo -e "\e[1;32m OK \e[0m"
else
echo -e "\e[1;31m FAILED \e[0m"
fi
2、编写函数,实现判断是否无位置参数,如无参数,提示错误
#!/bin/bash
if [ $1 ]
then
echo "There is a position parameter"
else
echo "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 ];then
echo $a
else
echo $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]+=1
done
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 ];then
echo "It's not a directory!"
else
for line in `ls $dir`
do
let array[${line#*.}]+=1
done
fi
for i in ${!array[*]}
do
echo $i:${array[$i]}
done