shell学习——关于shell函数库的使用
Posted wyf-349
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell学习——关于shell函数库的使用相关的知识,希望对你有一定的参考价值。
shell函数库的理解:
个人理解,shell函数库实质为一个脚本,脚本内包含了多个函数(函数具有普遍适用性)。
shell函数库的调用:
通过 . /path/lib/file.lib 或者 source /path/lib/file.lib的方式加载,然后正常函数方式调用。
示例如下:
创建函数库文件:libMyfunctions.sh
#!/bin/bash #创建一个函数库文件,用来打印$PATH的路径 showPATH() oldifs="$IFS" IFS=: for dir in $PATH do echo $dir done IFS="$oldifs" #这里可以增加N个其他函数
调用函数库文件:
#!/bin/bash #方法1: #. /home/wyf349/user/lib/libMyfunctions.sh
#通过 . 加载函数库文件,注意 . 和路径之间存在一个空格
#方法2: source ../lib/libMyfunctions.sh showPATH
需要注意的是,函数库的加载,其实是在调用的脚本中执行了这个文件,所以在函数库文件中不能包含exit的语句,否则将导致当前实例退出。
使用Ubuntu的时候,可能存在如下提示:
wyf349@ubuntu:~/user/study_shell$ sh lib_stduy_test1.sh* lib_stduy_test1.sh: 7: lib_stduy_test1.sh: source: not found lib_stduy_test1.sh: 9: lib_stduy_test1.sh: add: not found
原因为:Ubuntu默认的sh解析器为dash,需要调整为bash
ls -l /bin/sh #如果输出为dash sudo dpkg-reconfigure dash #在弹出的选择框中,选择no即可
以上是关于shell学习——关于shell函数库的使用的主要内容,如果未能解决你的问题,请参考以下文章