和其他语言一样,Shell也支持函数编程。接下来就让我们看看Shell中函数如何使用。”
01
—
函数定义与使用
Shell中定义函数有两种方式:
第一种:function_name()
{
//命令
}
第二种:function name
{
//命令
}
Shell中接收参数,可以用$1,$2....$n接收n个参数。比如,我们写个函数,用于计算加、减、乘、除。分别接收三个参数。
在命令行中用:calcul 30 + 20,即可计算出结果。
02
—
函数返回值
在Shell里面有两种方式返回值,分别是return和echo。其实使用return返回值在1-255的整数。使用echo可以返回任何字符串结果,通常返回一个字符串或列表值。
比如,我们要写个脚本监测redis进程是否正在运行。
这里假设脚本的名称也是redis.sh,执行这个脚本会产生一个关键字为redis的进程。所以要使用$$获取本身的进程id,在下面使用grep -v进行过滤。
上面假如redis进程是启动的,则返回0.一般返回0,也可以写为return。
那么怎么使用echo返回结果呢,这里举个例子。比如我们要到/etc/passwd下面获取用户名。函数如下:
function get_users
{
users=`cat /etc/passwd | cut -d: -f1`
echo $users
}
然后,我们使用user_list=`get_users`将函数返回结果赋值给user_list。然后就可以使用for循环依次输出每个用户了。
for u in $user_list
do
echo "The $index user is : $u"
done
03
—
其他
在Shell中,不做声明的变量都是全局变量,如果要在局部使用,需要声明为local。如果局部变量和全局的同名,则局部的优先级高。但是局部变量没有生命周期。
最后,写个检测后台redis启动的脚本,如果没有启动就启动,附上代码供参考。这里由于redis是在本地编译的,地址在桌面上的redis-3.0.0文件夹下面。
假如这里kill -9杀掉了redis进程,运行结果如下: