开发者学堂课程【Shell 编程入门到精通:shell 函数使用方法 】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/453/detail/5601
shell 函数使用方法
一、shell 函数使用方法
1、函数的定义
函数:把一个功能封装起来。使用时直接调用函数名。这样的脚本更模块,代码可读性强。
2、语法
函数名后跟小括号,小括号里不需要写任何东西,再下面是大括号,大括号里面跟命令序列。
函数名()
{
命令序列
}
或:
function函数名(
)
# function可以不写
{
命令序列
}
注:函数调用时:不带()
调用语法:
函数名 参数1 参数2 …
调用语法跟命令一样,函数名后面空格跟参数1,空格再跟参数2。
函数中的变量均为全局变量,没有局部变量,而且调用函数时,可以传递参数。在函数中用$1、$2...来引用传递的参数
3、例1
演示函数调用方法和测试函数中变量是否为全局变量
vim打开,创建函数fun1代码块,定义abc等于123,然后可以直接定义函数example,也可以function加函数名example,他的作用是给函数abc做一次赋值,引用时直接调用example,最后再次输入echo $abc,如,
[root@xuegod63
test
]#
vim
func
1.
sh
#!/bin/bash
abc=123
echo $abc
function example ()
{
abc=456
}
example
echo $abc
那么此时执行脚本,abc输出的是456还是123呢,可以执行一下脚本进行验证,如,
[root@xuegod63
test
]#
chmod
+x func1.sh
[root@xuegod63
test
]#./func1.sh
1
23
4
56
最终输出的是456,所以通过以上例子可知函数中变量为全局变量,而且函数调用时可以直接写名字也可以function加函数名,同样函数的命名规则和变量命名规则一样,都一般以字母方式开头。
下面是function加函数名方式:
#!/bin/bash
abc=123
echo $abc
##定义函数
function example1 ()
{
abc=456
}
##调用函数
example1
echo $abc
输出结果:
[root@xuegod63 mk]# ./c.sh
123
456
4、例2
演示函数参数传递
定义函数 example2 输出$1,$2,引用过程为 example2 传递参数 aaa给$1,bbb 传递给$2,在函数里引用参数时通过引用$1,$2就可以,如,
[root@xuegod63
test
]#
vim
func
2.
sh
# ! /bin/bash
###定义函数,使用参数
example2 ( )
{
echo $1
echo $2
}
###调用函数,向它传递参数
example2
aaa
bbb
[root@xuegod63
test
]#
.
/func2.sh
a
aa
b
bb