51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

shell编程函数 详解

这篇文章我们来讲解一下:shell编程函数的定义

函数

1.完成特定功能的代码块
2.可以复用代码块
3.函数类似变量,先定义在调用,函数不调用不执行

在shell 编程中 函数有3中 定义方式:

fun1(){
    echo "第一种函数定义方法"
}
function fun2 {
    echo "第二种函数定义方法"
}
function fun3(){
    echo "第三种函数定义方法"
}

调用的时候,直接写名字就可以:

fun1
fun2
fun3

比如我们定义一个 menu 的函数

menu(){
echo 我们把固定的一些内容放在函数中

}

调用函数直接 写 menu 就可以:

上案例:

[root@web00 day03]# cat os.sh 
#!/bin/bash
menu(){
echo -e "\t\t\t\033[32m 1.显示内存 \033[0m"
echo -e "\t\t\t\033[32m 2.显示磁盘 \033[0m"
echo -e "\t\t\t\033[32m 3.显示负载 \033[0m"
echo -e "\t\t\t\033[32m 4.显示公网IP \033[0m"
echo -e "\t\t\t\033[32m 5.显示帮助 \033[0m"
echo -e "\t\t\t\033[32m 6.退出脚本 \033[0m"
}
menu
while true
do
read -p "请输入你要查看系统信息的编号: " num
case $num in
	  1)
	  free -h
	  ;;
	  2)
	  df -h
	  ;;
	  3)
	  uptime
	  ;;
	  4)
	  curl -s cip.cc|awk 'NR==1'
	  ;;
	  5)
	    menu
	  ;;
	  6)
	    exit
	  ;;
	  *)
	   echo "Usage: $0 [1|2|3|4|5]"	   
esac

done

2 函数传参

函数传参: 直接将参数写到调用名称后面

例如:

#!/bin/bash
file=$1
fun1(){
    if [ -f $file ];then
       echo "$file 文件存在"
    else
       echo "$file 文件不存在"
    fi
}
fun1

3 函数变量的作用范围

函数中调用shell脚本中的变量
在函数中定义变量可以只在函数中生效 shell中不生效

平时工作中为了避免 不同函数定义的变量名 相同 而冲突,我们通常在函数中定义变量前 加上 local 关键词

这样这个变量的作用范围就是 本函数中了。

#!/bin/bash
fun1(){
     local name=baimei
     echo $name
}
fun1
fun2(){
      local name=hehe
      echo $name
}
fun2
echo $name

案例2:

[root@baimeidashu.com ~]#cat menu.sh 
#!/bin/bash
menu(){
echo 1.包子
echo 2.王八

}

4. 函数的返回值 return

#!/bin/bash
fun1(){
     if [ -f $1 ];then
         return 50
     else
         return 100
     fi
}
fun1 $1
re=$?
echo $re


shell编程函数调用

shell编程函数调用求和1到n
shell编程函数输入年份月份输出天数
shell函数式编程
shell编程-ne
shell编程常用命令
shell函数怎么写
shell编程实例详解
欢迎来撩 :shell 编程从0到1

赞(5)
未经允许不得转载:工具盒子 » shell编程函数 详解