有时候我们会经常的使用一个函数,这时候在每一个脚本中赋值粘贴也是一件很麻烦的事,这时候我们就可以把经常使用的函数写成函数库的形式。
一个很简单的小例子:我们需要知道当前正在运行操作系统的版本?当然如果我们直接使用uname命令很容易就会获得了,但是这里我们需要练习使用一下函数库:
1:首先写一个文本文件:这个文件的主要内容就是求出当前正在运行系统的版本。
[[email protected] ~]# 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:写一个脚本调用库函数,输出当前系统的版本信息:
[[email protected] ~]# 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脚本:
[[email protected] ~]# sh test.sh Our running platform is LINUX
关于库文件的几点说明:
- 库文件的后缀是随意的,并没有严格的要求,我们在这里虽然使用了.sh后缀,但是这并不是一个脚本文件。
- 由于不会直接运行库文件,而是把它包含在其他脚本文件中执行,所以库文件通常没有可执行权限:
- 放置库文件的位置是随意的,不一定要和运行的脚本在同一个目录中,只要在脚本中指明路径即可。
- 由于不希望库文件被用户直接执行,所以在库文件的第一行通常修改为“#!/bin/echo 警告信息”的形式,这样及时库文件被意外的执行,也会输出警告信息。
时间: 2024-10-11 05:20:40