热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linuxshell函数库,shell函数库调用

有时候我们会经常的使用一个函数,这时候在每一个脚本中赋值粘贴也是一件很麻烦的事,这时候我们就可以把经常使用的函数写成函数库的形式。一个很简单的小例子&#

有时候我们会经常的使用一个函数,这时候在每一个脚本中赋值粘贴也是一件很麻烦的事,这时候我们就可以把经常使用的函数写成函数库的形式。

一个很简单的小例子:我们需要知道当前正在运行操作系统的版本?当然如果我们直接使用uname命令很容易就会获得了,但是这里我们需要练习使用一下函数库:

1:首先写一个文本文件:这个文件的主要内容就是求出当前正在运行系统的版本。[root@lvs ~]# 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:写一个脚本调用库函数,输出当前系统的版本信息:[root@lvs ~]# 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脚本:[root@lvs ~]# sh test.sh

Our running platform is LINUX

关于库文件的几点说明:库文件的后缀是随意的,并没有严格的要求,我们在这里虽然使用了.sh后缀,但是这并不是一个脚本文件。

由于不会直接运行库文件,而是把它包含在其他脚本文件中执行,所以库文件通常没有可执行权限:

放置库文件的位置是随意的,不一定要和运行的脚本在同一个目录中,只要在脚本中指明路径即可。

由于不希望库文件被用户直接执行,所以在库文件的第一行通常修改为“#!/bin/echo 警告信息”的形式,这样及时库文件被意外的执行,也会输出警告信息。



推荐阅读
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • 本文总结了Linux下多线程执行shell脚本的4种方法,包括切换到工作目录执行、使用绝对路径执行、直接使用bash或sh执行。同时介绍了为什么需要加上"./"来执行脚本的原因。 ... [详细]
  • 【重识云原生】第四章云网络4.8.3.2节——Open vSwitch工作原理详解
    2OpenvSwitch架构2.1OVS整体架构ovs-vswitchd:守护程序,实现交换功能,和Linux内核兼容模块一起,实现基于流的交换flow-basedswitchin ... [详细]
  • ZABBIX 3.0 配置监控NGINX性能【OK】
    1.在agent端查看配置:nginx-V查看编辑时是否加入状态监控模块:--with-http_stub_status_module--with-http_gzip_stat ... [详细]
  • Linux Shell脚步的格式
    Shell脚步等多个命令的组合,可以做成一个shell文件(1.sh)赋权执行执行命令的方式前两张新的进程中执行,对当前进程不产生影响(cdtmp;pwds ... [详细]
  • mysql自动打开文件_让docker中的mysql启动时自动执行sql文件
    本文提要本文目的不仅仅是创建一个MySQL的镜像,而是在其基础上再实现启动过程中自动导入数据及数据库用户的权限设置,并且在新创建出来的容器里自动启动My ... [详细]
  • 对于一般的扩展包,我们一般直接pipinstallxxx即可安装,但是unrar直接安装后,发现并不能通过Python程序实现解压的功能& ... [详细]
  • MySQL5.6.40在CentOS764下安装过程 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
  • Tomcat安装与配置教程及常见问题解决方法
    本文介绍了Tomcat的安装与配置教程,包括jdk版本的选择、域名解析、war文件的部署和访问、常见问题的解决方法等。其中涉及到的问题包括403问题、数据库连接问题、1130错误、2003错误、Java Runtime版本不兼容问题以及502错误等。最后还提到了项目的前后端连接代码的配置。通过本文的指导,读者可以顺利完成Tomcat的安装与配置,并解决常见的问题。 ... [详细]
  • LINUX学习之centos7营救模式
    今天卸载软件的时候,不小心把GNOME的一些组件给卸了,导致桌面无法正常开启,会卡在启动过程中,而我的开机启动模式又是设置为图形界面,所以一开LINUX就卡住了,进入不了命令行界面 ... [详细]
  • 找到JDK下载URL当然去官网找了。目前最新的1.8的下载URL(RPM)如下:http:download.oracle.comotn-pubjavajdk8u161-b122f3 ... [详细]
author-avatar
阳光美女新干线-
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有