有时候我们会经常的使用一个函数,这时候在每一个脚本中赋值粘贴也是一件很麻烦的事,这时候我们就可以把经常使用的函数写成函数库的形式。
一个很简单的小例子:我们需要知道当前正在运行操作系统的版本?当然如果我们直接使用uname命令很容易就会获得了,但是这里我们需要练习使用一下函数库:
1:首先写一个文本文件:这个文件的主要内容就是求出当前正在运行系统的版本。[root@lvs ~]# vim library.sh
#!/bin/echo Warning:this is a library should be sourced!
#上面这一行的作用是防止数据库被意外执行
#定义函数test_platform用来测试当前的操作系统
test_platform(){
local osname=`uname -s`
PLATFORM=UNKNOWN
case ${osname} in
"FreeBSD")
PLATFORM="FREEBSD"
;;
"SunOS")
PLATFORM="SOLARIS"
;;
"Linux")
PLATFORM="LINUX"
;;
esac
return 0
}
这个文件就是我们的库函数:
2:写一个脚本调用库函数,输出当前系统的版本信息:[root@lvs ~]# vim test.sh
#!/bin/bash
#首先在脚本文件中包含进库文件library,从而可以调用其中定义的函数
source ./library.sh
#调用函数库中的test_platform
test_platform
#输出函数test_platform中定义的全局变量PLATFORM
echo
echo "Our running platform is $PLATFORM"
exit
然后我们执行执行test.sh脚本:[root@lvs ~]# sh test.sh
Our running platform is LINUX
关于库文件的几点说明:库文件的后缀是随意的,并没有严格的要求,我们在这里虽然使用了.sh后缀,但是这并不是一个脚本文件。
由于不会直接运行库文件,而是把它包含在其他脚本文件中执行,所以库文件通常没有可执行权限:
放置库文件的位置是随意的,不一定要和运行的脚本在同一个目录中,只要在脚本中指明路径即可。
由于不希望库文件被用户直接执行,所以在库文件的第一行通常修改为“#!/bin/echo 警告信息”的形式,这样及时库文件被意外的执行,也会输出警告信息。