如何在Linux发行版中使用Bash脚本来使用Shell函数库

238 阅读6分钟

演示壳牌函数库使用的壳牌脚本

一个好的计算机程序里有各种各样的代码行。这些代码片断有时会在程序中重复使用,并多次使用。为了简化这一过程并减少错误,函数被用来分组重复的代码片段。

在shell脚本中,函数库可以从开发环境的任何位置调用,使shell脚本不那么费力,在试图减少错误时也很有帮助。

简介

本文将带你了解如何创建一个简单的shell脚本函数以及如何使用它。

目标

在本文结束时,读者将理解。

  • 什么是函数,什么是函数库。
  • 如何创建一个shell函数。
  • 如何使用函数库中的函数,然后演示如何将bash脚本作为一个函数库。

前提条件

为了更好地理解本教程,希望读者能有一些预先的背景知识,主要是以下方面。

  • 如何使用交互式Unix/Linux shell。
  • 了解一些Unix/Linux命令。
  • 最低限度的编程知识--使用变量和函数。

贝壳函数

Shell脚本是一个被设计成由Unix/Linux shell运行的计算机程序。这个脚本可以执行诸如文件操作、程序执行和打印文本等操作。

为了执行这些任务,一些代码可以在程序中重复使用。为了使这一过程更容易,我们可以将这些代码归入一个Function ,这样就可以在程序中多次调用和重复使用。

如何创建一个函数

一个函数是一个执行某种活动的代码块。一个函数可以被调用和重复使用。在shell脚本中,函数类似于其他编程语言的子程序、程序和函数。

只要输入以下代码就可以创建一个函数。

function_name () { 
   list of commands
}

你的函数的名字是function_name ,你将在你的脚本中用这个名字来调用它。函数的名称前面必须有小括号和一系列由大括号包围的指令。

下面是一个例子,说明函数的使用方法。

Hello () {
   echo "Hello World"
}

Hello

在你的Linux系统中把上面的脚本保存为test.sh ,然后在终端运行它,写上./test.sh

上面的脚本将显示以下输出。

Hello World

在C/C++中,shell函数库类似于头文件,而在Python中,它类似于一个模块。当前脚本必须知道函数的位置。

为了能够使用这些函数,我们必须另外将文件的位置添加到环境变量中,或者在终端运行脚本,将函数库临时加载到当前的shell中。Shell脚本的函数与普通的shell脚本类似,它们只定义函数。

为什么使用函数库

拥有函数库最重要的原因是为了可重用。我们需要函数库中的函数是出于以下原因。

  1. 有时我们需要解决循环逻辑。例如,在Oracle应用程序中,每当一个并发请求被发送时,我们通常会点击刷新按钮来检索关于并发程序状态的最新数据。或者,我们可以创建一个函数,并把它放在函数库中,这样它就可以在其他脚本中使用。

  2. 我们有时可能需要一个函数集合来处理一个excel文件、一个CSV文件、一个XML文件或一个属性文件。当我们希望与几个测试自动化脚本一起工作时就是这种情况。

当这些函数被开发出来后,它们可以在几个测试自动化脚本中需要的地方被重复使用。我们可能因为各种原因需要与这些文件互动,包括测试数据迭代,电子表格验证等等。

  1. 一些公司为应用程序的每个业务功能开发函数,然后可以利用这些函数来创建其他测试脚本组合。

另一个好处是,一旦这些函数被暴露出来,它们就成为中心,所以对它们的任何改变都会反映在利用它们的任何脚本中。

创建一个函数库

让我们来看看如何用OATS的Open脚本创建一个函数库。

要构建一个函数库,请遵循以下步骤。

  1. 打开打开脚本的文件。
  2. 从文件菜单中选择新建。
  3. 在选择项目类型后点击下一步。
  4. 勾选标有Create a script as function library 的方框。

How to create a Script as a Function Library

  1. 接下来,输入你要使用的函数库的名称。
  2. 输入所需的包名,可以是你公司的名称,也可以是我们为每个Java程序制作的通用包名。
  3. 输入你喜欢的Class名称,它应该与你的函数库的名称相似。

How to enter a class name

  1. 通过点击 "完成 "按钮完成。

函数库建立后,最终用户可以添加他们想在自动化脚本中使用的函数。

使用函数库中的函数

以下是使用函数库时的步骤。

  • 可以创建任何新的自动化脚本。
  • 进入 "资产 "部分。
  • 选择脚本的节点后点击添加。

How to add a script

  • 输入我们生成的函数库的路径。
  • 给它一个合适的别名(这个名字将在脚本中用来调用函数)。
  • 现在函数库中的所有函数都可以使用了。

一个使用Bash脚本作为函数库的简单演示

这个过程的第一步是建立一个包含所有脚本功能的共享库文件。在这个目录下制作一个名为myfuncs.sh 的函数库文件。

function addem
{
   echo $[ $1 + $2 ]
}

function multem
{
  echo $[ $1 * $2 ]
}

function divem
{
  if [ $2 -ne 0 ]
  then
     echo $[ $1 / $2 ] 
  else
     echo -1 
  fi
}

只需在shell脚本中加入以下一行,即可启动myfuncs库文件。

接下来,在使用这些功能的脚本文件中包括myfuncs.sh 库文件。目前,shell函数的范围有一个问题。

Shell函数和环境变量一样,只在指定它们的shell会话期间有效。如果你试图像正常的脚本文件一样运行库文件,该函数将不会出现在当前脚本中。

./myfuncs.sh

result=$(addem 5 10)
echo "The reslut is $result"

在这个例子中,myfuncs.shtest13.sh 都位于同一个目录中。如果不是,你必须使用适当的路径来访问该文件。

shell函数库的用法

shell函数库是比较基本的,但它取决于用户的可用性和选择顺序,因为它有可能严重扰乱代码结构。如果用户需要改变函数,他们可能会忘记它被保存在哪里。

Shell函数库是一种奇妙的方法,可以快速而容易地变得有条理。它简化了一遍又一遍记忆或重写代码的过程。

它可能通过允许你快速和简单地做事而节省大量的时间和精力。Linux shell的这一功能在提高用户的工作效率和最大限度地利用脚本文件的时间方面可能是非常有用的。

总结

在这篇文章中,我们已经了解了什么是脚本,如何使用开放脚本来创建一个脚本,然后演示了在Linux发行版中使用Bash脚本来使用Shell函数库。

我敦促读者继续研究这篇文章,以获得更多关于使用函数库的自动化知识。