1、编写函数,实现打印绿色OK和红色FAILED
判断是否有参数,存在为Ok,不存在为FAILED
fun(){
if [ -z $1 ]
then
echo -e "\033[31m failed \033[0m"
else
echo -e "\033[32m ok \033[0m"
fi
}
read -p "请输入参数: " i
fun $i
2、编写函数,实现判断是否无位置参数,如无参数,提示错误
fun(){
if [ $# -eq 0 ]
then
echo "无位置参数"
else
echo "位置参数为$@"
fi
}
read -p "请输入参数: " i
fun $i
3、编写函数实现两个数字做为参数,返回最大值
read -p "please input two number:" a b
fun(){
[ -z "$a" -o -z "$b" ] && {
echo "please input 'two' number"
exit 1
}
expr $a + 10 &>/dev/null
return_a=$?
expr $b + 10 &>/dev/null
return_b=$?
[ "$return_a" -eq 0 -a "$return_b" -eq 0 ] || {
echo "please input two 'number'"
exit 2
}
[ "$a" -lt "$b" ] && {
echo "$a < $b"
exit 0
}
[ "$a" -eq "$b" ] && {
echo "$a = $b"
exit 0
}
[ "$a" -gt "$b" ] && {
echo "$a > $b"
exit 0
}
}
fun $a $b
4、编写函数,实现两个整数位参数,计算加减乘除
fun()
{
echo "$1+$2=$(($1+$2))"
echo "$1-$2=$(($1-$2))"
echo "$1*$2=$(($1*$2))"
echo "$1/$2=$(($1/$2))"
}
read -p "please input two int number:" num1 num2
fun $num1 $num2
5、将/etc/shadow文件的每一行作为元数赋值给数组
j=0
for i in `cat /etc/shadow`
do
array[$j]=$i
let j++
done
read -p "input you want line:" line
echo ${array[$line]}
6、使用关联数组统计文件/etc/passwd中用户使用的不同类型shell的数量
declare -A array
for i in `cut -d : -f7 /etc/passwd`
do
let array[$i]=array[$i]+1
done
for sub in ${!array[*]}
do
echo $sub:${array[$sub]}
done
7、使用关联数组按扩展名统计指定目录中文件的数量
declare -A array
for i in `ls | cut -d . -f 2-`
do
let array[$i]=array[$i]+1
done
for sub in ${!array[*]}
do
echo "$sub:${array[$sub]}"
done