shell学习——关于shell函数库的使用
2024-08-31 08:39:56
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即可
最新文章
- 两种方法设置disabled属性
- 【Java EE 学习 22 下】【单线程下载】【单线程断点下载】【多线程下载】
- Linux安装搜狗拼音输入法
- 安装redis
- lsyncd 实时同步
- wordpress 缩略图功能函数 the_post_thumbnail
- ubuntu下git clone 出现Permission denied (publickey).
- 【HDOJ】1885 Key Task
- 提高mindmanager 8的启动速度
- Hibernate学习(1)- 初识
- vue 点击弹窗外框关闭弹框
- Codeforces Round #481 (Div. 3)题解
- 基于spring boot的统一异常处理
- NOIP2018考前抱佛脚——数据结构基础及STL实现
- POJ3208魔鬼数
- java+redis+lua生成自动增长的ID序列号
- pytorch之Tensor
- 安卓 onTouch OnTouchEvent onChick 顺序
- 在局域网中查找特定设备的 IP
- 配置Eclipse自动编译NDK/JNI