shell函数

shell函数

shell中允许将一组命令集合语句形成一段可用代码,这些代码块称为shell函数。给这段代码起个名字称为函数名,后续可以直接调用该段代码的功能。

1.函数的定义

函数名()
{
  函数体(一堆命令的集合,来实现某个功能)   
}

function 函数名()
{
   函数体(一堆命令的集合,来实现某个功能)  
}


function_name() {
		command
		command
}


function function_name() {
		command
		command
}

2.函数的调用

通过function关键字定义shell函数,也可以省略function关键字
shell的函数,先定义,后调用

举例
# 定义第一个函数,名字是 hello 
function hello(){
	# 被封装的代码,执行该函数,就会执行这里的函数体
    echo "hello  linux."
}

hello # 直接写函数名就可以调用函数,不需要带()

导入系统函数库

在脚本中写入
source /etc/init.d/functions
引入使用
action "你的字符串:成功" /bin/true
action "你的字符串:失败" /bin/false

函数从文件中导入

vim func1.sh
#!/bin/bash
name='吴彦祖'

echo_name(){
	echo "该变量name的值是:$name"  # 只定义不调用
}
hello(){
  echo "原来脚本可以这样玩,我是func1中的hello函数,我被执行了"
}

hello


vim func2.sh

#!/bin/bash
. func1.sh  # 脚本2中导入func1.sh

echo_name   # 调用func1.sh中的echo_name函数

bash func2.sh
原来脚本可以这样玩,我是func1中的hello函数,我被执行了
该变量name的值是:吴彦祖

函数传参

1. 这里的函数传参,是指单独给函数传递执行参数,和给脚本传入参数是两码事
2. 函数传参是指,函数在执行的时候,可以传入位置参数,这样函数连带参数一起执行。

举例:
#!/bin/bash 

function hello(){
    echo "函数开始执行"
    echo "函数体中接收的参数1 :" $1
    echo "函数体中接收的参数2 :" $2   # 这里是执行函数传入的参数,即指下面的laoliu laoba
}

# 这里传入的是函数参数
hello laoliu laoba

echo "函数外,可以正常的接收位置参数1:" $1   
echo "函数外,可以正常的接收位置参数2:" $2  # 这里是执行脚本传入的参数 $1和$2
posted @ 2023-09-21 16:04  村尚chun叔  阅读(16)  评论(0编辑  收藏  举报