shell第五次作业(函数和数组)

函数和数组

1、编写函数,实现打印绿色OK和红色FAILED 判断是否有参数,存在为Ok,不存在为FAILED
2、编写函数,实现判断是否无位置参数,如无参数,提示错误
3、编写函数实现两个数字做为参数,返回最大值
4、编写函数,实现两个整数位参数,计算加减乘除。

1、编写函数,实现打印绿色OK和红色FAILED 判断是否有参数,存在为Ok,不存在为FAILED

[root@wn2 test6]# vim 1.sh
[root@wn2 test6]# cat 1.sh 
#!/bin/bash
###################
#File name:1.sh
#Version:v1.0
#Email:admin@test.come
#Created time:2021-01-22 10:51:52
#Description:
###################
fun (){
  if [ $# -ne 0 ]
  then
    echo -e "\033[32m OK \033[0m"
  else
    echo -e "\033[31m FAILED \033[0m"
  fi
}
read -p "请输入参数:" i
fun $i
[root@wn2 test6]# bash 1.sh 
请输入参数:12
 OK 
[root@wn2 test6]# bash 1.sh 
请输入参数:
 FAILED 

2、编写函数,实现判断是否无位置参数,如无参数,提示错误

[root@wn2 test6]# vim 2.sh
[root@wn2 test6]# cat 2.sh 
#!/bin/bash
###################
#File name:2.sh
#Version:v1.0
#Email:admin@test.come
#Created time:2021-01-22 11:05:41
#Description:
###################
fun() {
  if [ $# -eq 0 ]
  then
    echo "无位置参数"
  else
    echo "位置参数为$@"
  fi
}
read -p "请输入:" i
fun $i
[root@wn2 test6]# bash 2.sh 
请输入:21 43 54
位置参数为21 43 54
[root@wn2 test6]# bash 2.sh 
请输入:
无位置参数

3、编写函数实现两个数字做为参数,返回最大值

[root@wn2 test6]# vim 3.sh
[root@wn2 test6]# cat 3.sh 
#!/bin/bash
###################
#File name:3.sh
#Version:v1.0
#Email:admin@test.come
#Created time:2021-01-22 11:20:56
#Description:
###################
fun() {
  if [ $a -gt $b ]
  then
    echo "最大值为:$a"
  elif [ $a -eq $b ]
  then
    echo "a=b"
  else
    echo "最大值为:$b"
  fi
}
read -p "please input two numbers:" a b
fun $a $b
[root@wn2 test6]# bash 3.sh 
please input two numbers:12 4
最大值为:12
[root@wn2 test6]# bash 3.sh 
please input two numbers:4 5
最大值为:5
[root@wn2 test6]# bash 3.sh 
please input two numbers:4 4
a=b

4、编写函数,实现两个整数位参数,计算加减乘除。

[root@wn2 test6]# vim 4.sh
[root@wn2 test6]# cat 4.sh
#!/bin/bash
###################
#File name:4.sh
#Version:v1.0
#Email:admin@test.come
#Created time:2021-01-22 11:26:35
#Description:
###################
fun() {
  echo a+b=$((a+b))
  echo a-b=$((a-b))
  echo a*b=$((a*b))
  echo a/b=$((a/b))
}
read -p "请输入两个整数位参数:" a b
fun $a $b
[root@wn2 test6]# bash 4.sh 
请输入两个整数位参数:12 4
a+b=16
a-b=8
a*b=48
a/b=3

如果加上参数个数及参数是否为整数,则shell脚本如下:

[root@wn2 test6]# vim 4.sh
[root@wn2 test6]# cat 4.sh 
#!/bin/bash
###################
#File name:4.sh
#Version:v1.0
#Email:admin@test.come
#Created time:2021-01-22 11:26:35
#Description:
###################
fun() {
  if [ $# -eq 2 ]
  then
    if [[ "$a" =~ ^[0-9]*$ && "$b" =~ ^[0-9]*$ ]]
    then
      echo a+b=$((a+b))
      echo a-b=$((a-b))
      echo a*b=$((a*b))
      echo a/b=$((a/b))
    else
      echo "两个参数不都为整数"
      exit 0
    fi
  else
    echo "参数不为两个"
    exit 0
  fi
}
read -p "请输入两个整数位参数:" a b
fun $a $b
[root@wn2 test6]# bash 4.sh
请输入两个整数位参数:14 2
a+b=16
a-b=12
a*b=28
a/b=7
[root@wn2 test6]# bash 4.sh
请输入两个整数位参数:i 2
两个参数不都为整数
[root@wn2 test6]# bash 4.sh
请输入两个整数位参数:12 3 4
参数不为两个
上一篇:要探索JDK的核心底层yuan码,那就要掌握native用法


下一篇:ps