shell-----函数库调用

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

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

1:首先写一个文本文件:这个文件的主要内容就是求出当前正在运行系统的版本。

[[email protected] ~]# 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:写一个脚本调用库函数,输出当前系统的版本信息:

[[email protected] ~]# 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脚本:

[[email protected] ~]# sh test.sh 

Our running platform is LINUX

关于库文件的几点说明:

  • 库文件的后缀是随意的,并没有严格的要求,我们在这里虽然使用了.sh后缀,但是这并不是一个脚本文件。
  • 由于不会直接运行库文件,而是把它包含在其他脚本文件中执行,所以库文件通常没有可执行权限:
  • 放置库文件的位置是随意的,不一定要和运行的脚本在同一个目录中,只要在脚本中指明路径即可。
  • 由于不希望库文件被用户直接执行,所以在库文件的第一行通常修改为“#!/bin/echo 警告信息”的形式,这样及时库文件被意外的执行,也会输出警告信息。
时间: 2024-10-11 05:20:40

shell-----函数库调用的相关文章

shell学习——关于shell函数库的使用

shell函数库的理解: 个人理解,shell函数库实质为一个脚本,脚本内包含了多个函数(函数具有普遍适用性). shell函数库的调用: 通过  . /path/lib/file.lib 或者 source /path/lib/file.lib的方式加载,然后正常函数方式调用. 示例如下: 创建函数库文件:libMyfunctions.sh #!/bin/bash #创建一个函数库文件,用来打印$PATH的路径 showPATH(){ oldifs="$IFS" IFS=: for

函数库调用和系统调用的区别

函数库调用和系统调用的区别. 操作系统层面上:系统调用是调用操作系统内核的一部分.系统调用,每个操作系统会存在不同. 速度上:系统调用一次需要35微秒.函数库一次调用耗费半微秒. 系统调用大概有70个. 文件描述符和文件指针的区别 将会进行干嘛呢. 文件描述符是一个整型数字.操作系统的系统调用,都需要传递这个值进去. 作者建议,要使用标准的i/o库调用.这样会出现移植性. 文件指针则是一个内存地址,指向了一个数据结构.结构里面保持哪些内容?描述符,可以有很多种描述办法. 用途不同,文件描述符是进

shell函数递归调用实现目录的对比拷贝

目的与需求: 在移植时,需要将根文件系统rootfs1中的新增内容合入rootfs2,但不能覆盖rootfs2中原有的东西.即只能比较两个文件系统的异同,将1中比2中多出来的东西移到2中. 难点: 目录中若有相同的子目录,也要使得子目录满足上述需求. 点睛之笔: shell 递归调用, 借鉴二叉树的深度优先遍历. 实操: 1 #!/bin/bash 2 3 cpdifffile() 4 { 5 6 DIR1=$1 7 DIR2=$2 8 files1=`ls $DIR1` 9 #files2=`

Linux之自定义的 Shell 函数和函数库

在 Linux 系统下,Shell 脚本可以在各种不同的情形下帮到我们,例如展示信息,甚至 自动执行特定的系统管理任务,创建简单的命令行工具等等. 在本指南中,我们将向 Linux 新手展示如何可靠地存储自定义的 shell 脚本,解释如何编写 shell 函数和函数库,以及如何在其它的脚本中使用函数库中的函数. Shell 脚本要存储在何处 为了在执行你自己的脚本时不必输入脚本所在位置的完整或绝对路径,脚本必须被存储在$PATH 环境变量所定义的路径里的其中一个. 使用下面的命令可以查看你系统

shell函数

为什么要用shell函数? 简单地说函数的作用就是把程序里多次调用的相同的代码 ,定义成一份,然后起个名字,所有的调用都是只用这个名字就可以了.修改代码时,只需要改变函数体内的代码即可. 优势: 把相同的程序段定义成函数,可以节省程序代码量 增加程序的可读,易读性 实现程序的功能模块化 shell函数语法 简单的语法: 函数名(){ 指令... return n } 规范的语法: function   函数名(){ 指令... return n } shell函数执行 调用函数: 1)直接执行函

Shell函数与数组

1.什么是函数 被命名的语句块儿:有开始和结束的边界; begin ...... end 2.Shell语句中的语句块儿 (1).(语句1:语句2:...) (2).{语句1:语句2:...} (3).if else elif while for (4).被命名的语句块儿,函数: 3.Shell函数的定义 函数的要素:(1).函数名称 (2).语句块儿 (3).返回值 (4).参数 Shell函数定义2种基本格式: (1) function 函数名称(){ $1 //若干语句 } 返回值类型:是

Shell函数、接受用户输入

1.调用Shell函数: Shell函数的调用和c语言的函数调用有所区别,其参数跟在函数名后,不需要用括号括起来. 执行结果: 2.接受用户输入: read -p 原文地址:https://www.cnblogs.com/zhai1997/p/12092316.html

Shell函数返回值、删除函数、在终端调用函数

Shell 也支持函数.Shell 函数必须先定义后使用. Shell 函数的定义格式如下: function_name () { list of commands [ return value ] } 如果你愿意,也可以在函数名前加上关键字 function: function function_name () { list of commands [ return value ] } 函数返回值,可以显式增加return语句:如果不加,会将最后一条命令运行结果作为返回值. Shell 函数返

Shell函数:Shell函数返回值、删除函数、在终端调用函数

函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰,代码重复利用率更高.像其他编程语言一样,Shell 也支持函数.Shell 函数必须先定义后使用. Shell 函数的定义格式如下: function_name () { list of commands [ return value ] } 如果你愿意,也可以在函数名前加上关键字 function: function function_name () { list of commands [ return value ] } 函数

shell - 函数、数组定义与调用

#!/bin/bash # returning an array value function arraydblr() { local origarray local newarray local elements local i origarray=(`echo "[email protected]"`) newarrray=(`echo "[email protected]"`) elements=$[ $# -1 ] for((i=0;i<=$eleme