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的时候,可能存在如下提示:
[email protected]:~/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即可
原文地址:https://www.cnblogs.com/wyf-349/p/11464975.html
时间: 2024-09-28 21:56:54