前言
目前正在出一个Shell脚本编程
系列教程, 篇幅会较多, 喜欢的话,给个关注❤️ ~
前面我们学习了Linux
的一些基本命令,需要我们在终端手动去执行,但在处理一些复杂的操作就显得有点乏力,需要不停的执行,还很容易出错。有没有一种办法,可以帮助我们执行这一些列操作,方法当然有,那就是通过脚本去解决。
作为服务端开发,shell脚本编程
还是要掌握一下的,可以做做基础性的运维,提高工作效率。
本系列主要以Linux Bash
为主 ,好了, 废话不多说直接开整吧~
函数
本节主要给大家讲讲函数
的内容,语法上跟我们熟知的js
中的函数类似
function f_name () { .... }
function
也可以省略掉,通常会这么定义:
f_name() { .... }
示例:
h(){ echo 'hello world'; } h
结果:
hello world
调用函数只用方法名
,不需要加()
,另外函数返回值
,可以显式的使用return
语句;也可以使用最后一条命令运行结果
作为返回值。这里的retrun
跟我们熟知的return
可不大一样
改写上面的例子:
h(){ return 'hello world'; } h
运行结果:
[root@iZ2ze5vrnucj8nu52fq932Z shell]# ./fn.sh ./fn.sh: line 2: return: hello world: numeric argument required [root@iZ2ze5vrnucj8nu52fq932Z shell]#
可以看到报错了 numeric argument required
,意思说只能返回整数
, 如果想返回字符串,一般我们都使用echo
函数中的参数
一般通过一下几个特殊变量
来接收参数:
$#
传递给函数的参数个数。$*
显示所有传递给函数的参数。$@
与$*相同$?
函数返回值
示例:
add() { case $# in 0) echo "no param";; 1) echo "$1";; 2) echo `expr $1 + $2`;; *) echo "";; esac } add add 1 add 1 2 add 1 2 3 echo $?
结果:
[root@iZ2ze5vrnucj8nu52fq932Z shell]# ./fn.sh no param 1 3 0 [root@iZ2ze5vrnucj8nu52fq932Z shell]#
$?
输出了一个0
,因为上个函数执行的返回值是一个空串
将返回值赋值给变量
add() { case $# in 0) echo "no param";; 1) echo "$1";; 2) echo `expr $1 + $2`;; *) echo "";; esac } a=$(add 1 2) echo $a
输出结果:
[root@iZ2ze5vrnucj8nu52fq932Z shell]# ./fn.sh 3 [root@iZ2ze5vrnucj8nu52fq932Z shell]#
结束语
大家平时在工作的时候就可以灵活运用起来了,多用用就熟悉了,大部分项目中都会用到脚本帮助我们去做一些自动化的工作,从而提高效率,还不容易出错~
本着把自己知道的都告诉大家,如果本文对有所帮助,点赞+关注
鼓励一下呗~