为什么要定义函数库
- 经常使用的重复代码封装成函数文件
- 一般不直接执行,而是由其他脚本调用
示例
base_function
#!/bin/echo
#
function add
{
echo "`expr $1 + $2`"
}
function reduce
{
echo "`expr $1 - $2`"
}
function multiple
{
echo "`expr $1 \* $2`"
}
function divide
{
echo "`expr $1 / $2`"
}
function sys_load
{
echo "Memory Info"
echo
free -m
echo
echo "Disk Usage"
echo
df -h
echo
}
calculate.sh
#!/bin/bash
#
. base_function # 在系统source目录下搜索文件,无法找到的更换为绝对路径
add 12 23
reduce 90 30
multiple 12 11
divide 12 2
小结
- 库文件名的后缀是任意的,但一般使用.lib
- 库文件通常没有可执行选项,不给 +x
- 库文件无需和脚本在同级目录,只需在脚本中引用时指定,例如放到lib文件包里
- 第一行一遍使用
#!/bin/echo
输出警告信息,避免用户执行