练习题:函数和数组

目录

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 ]
  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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值