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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性