目录
一、shell中自定义函数语法
二、shell函数参数
三、案例实战
函数是把一个功能封装起来,使用时直接调用函数名,这样的脚本好处:模块化,代码可读性强,扩展性方便
在案例实战部分会具体讲解,不带参数的shell函数,带参数的shell函数。
一、shell中自定义函数语法
1、shell中自定义函数语法
2、如何调用函数
1、shell中自定义函数语法
在shell 中有两种定义函数的语法格式,分别为:
语法1:
function_name ()
{
command
command
....
command
}
语法2(这样比较规范):
function function_name()
{
command
command
....
command
}
----------------------------------------------------------------------
举例1:
function fun1(){
echo "hello shell!"
}
fun1 #调用函数
fun1
----------------------------------------------------------------------
举例2:
demoFun(){
echo "这是我的第一个 shell 函数!"
}
echo "-----函数开始执行-----"
demoFun #调用函数
2、如何调用函数
1)直接使用函数名调用,可以将其想象成Shell中的一条命令
2)函数内部可以直接使用参数$1 $2 $n,调用函数:function_name $1 $2
二、shell函数参数
和 C++、Python等大部分编程语言不同,Shell 中的函数在定义时不能指明参数,但是在调用时却可以传递参数。
在函数体内部,可以通过 $n 的形式来获取参数的值,例如,$1表示第一个参数,$2表示第二个参数,依次类推。

案例1
#!/bin/bash
#定义函数
function show(){
echo "变量1: $1"
echo "链接: $2"
echo "作者: "$3
echo "总共参数个数$# "
}
echo "-----------第一次调用函数-----------------"
show a "www.baidu.com" Tom
echo "-------------第二次调用函数----------------"
show b "www.naixue.com" Jack

说明:
(1)如果函数体内部指定了参数,在调用该函数时需要传参。
参考文档1:Shell函数参数
参考文档2:Shell脚本函数定义和函数参数
三、案例实战
1、定义一个函数,调用该函数时可打印hello shell!
不带参数的函数
#!/bin/bash
function fun1(){
echo "hello shell!"
}
fun1 #调用函数
fun1
fun1
fun1

2、更新中
最近在知乎看了个回答,喜欢上面的三句话,分享给大家也勉励自己。
1、强及时反馈会害了自己,比如今天写SQL面试题,构思了4个小时还无从下笔,我在想是不是应该解决Shell自定义函数问题,写书对我是个很好的实战机会,毕竟以后自己也要写书,在难也要坚持下去;比如在学习大数据的时候,这个过程太漫长了,远得看不见终点
2、《向上生长》谈慢启动。人想进步,最难的地方,就是随时想放弃,为什么想放弃呢?因为看不见进展,不知道自己在进步。而人不管干什么事都有一个慢启动过程,也就是一开始没什么效果,比如我已经持续写下一百多万字,可是当我写前一百万字的时候,完全没人理我,但是我写道第二个一百万字的时候,人们就围过来了。
慢启动这事,要理解事务发展内在逻辑
,要学会不计后果地去做某件事…………相信大家跟我一样,不管做什么事,如果做一段时间,没什么感觉,也不太顺利,就开始怀疑自己没天赋。 这种想法是错误的,你一个普通人,你有啥天赋,
你最应该考虑的问题是:
1)现在是慢启动阶段,要什么自行车?
2)数量都不够,要什么效果?
3、社会竞争并不是需要你比所有人都强——绝大部分人又懒又俗,几年都不进步,所以你稍微努力一些,确保超过全社会60%的人。
下周开始做数仓项目,想去有大数据公司的做数仓。比如极米科技。
网友评论