4. shell编程之函数

2022-03-13 分类:shell编程 阅读(312) 评论(0)

孙富阳, 江湖人称没人称。多年互联网运维工作经验,曾负责过孙布斯大规模集群架构自动化运维管理工作。擅长Web集群架构与自动化运维,曾负责国内某大型博客网站运维工作。

1.函数基本概述

1.什么是shell函数

函数其实就是一堆命令的合集,用来完成特定功能的代码块。

2.为什么要使用函数

比如我们经常需要使用判断功能,完全可以将其封装为一个函数,这样在写程序过程中可以在任何地方调用该函数,不必重复编写。这样能减少代码冗余,可读性更强。函数和变量类似,必须先定义才可以调用,如果定义不调用则不会被执行。

2.函数基础语法

1.定义shell函数,可以通过如下三种方式进行定义。

#方式一
fun1(){
     echo "第一种定义函数的方法"
}
#方式二fun2与{之间必须有空格
function fun2 {
     echo "第二种定义函数的方法"
}
#方式三
function fun3(){
     echo "第三种定义函数的方法"
}

2.如何调用函数,直接使用函数名调用。(可以理解为:shell的一条命令)

[root@fsf ~]# fun() { echo "你好世界";}
[root@fsf ~]# fun
你好世界

3.函数参数传递

在函数内部可以使用参数$1,$2……,调用函数function_name $1 $2……

1.函数中传递参数

[root@fsf ~]# fun2() { echo "hello,$1" ;}
[root@fsf ~]# fun2 linux
hello,linux

2.函数中接收多个参数

[root@fsf ~]# fun3() { echo "hello,$1,$2" ;}
[root@fsf ~]# fun3 linux mysql
hello,linux,mysql

3.函数中传递多个参数$*,接收所有的参数传参

[root@fsf ~]# fun4() { echo "hello,$*" ;}
[root@fsf ~]# fun4 linux mysql redis https
hello,linux mysql redis https

4.函数状态返回

Shell的函数返回值,也算是退出的状态。在shell中只有echo、return两种方式。1.return返回值,只能返回1-255的整数,函数使用return返回值,通常只是用来供其他地方调用获取状态,因此通常返回0或1;0表示成功,1表示失败。2.echo返回值;使用echo可以返回任何字符串结果,通常用户返回数据,比如一个字符串值或者列表值。

1.shell函数echo返回字符串

[root@fsf ~]# cat fun_echo.sh
#!/bin/bash
get_users() {
   users=`cat /etc/passwd|cut -d: -f1`
   echo $users
}
user_list=`get_users`
index=1
for u in $user_list
do
  echo "The $index user is: $u "
  let index++
done

2.shell函数的return返回值示例

[root@fsf ~]# cat fun_return_1.sh
#!/bin/bash
file=/etc/passwd
t_file() {
if [ -f $file ];then
  return 123
 else
 return 1
  
}
t_file
echo $?
[root@fsf ~]# sh fun_return_1.sh
123

5.系统内置函数库

/etc/init.d/functions

6.函数变量局部生效

fun(){
local num=10				# 加上local只在当前的fun函数中生效
     for i in `seq 10`
     do
           total=$[$num+$i]
     done
     echo 计算结果为 $total
}

评论已关闭

登录

忘记密码 ?

切换登录

注册

鲁ICP备2021019243号-1