我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Linux下怎么编写和使用自定义的Shell函数和函数库

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Linux下怎么编写和使用自定义的Shell函数和函数库

本篇内容主要讲解“Linux下怎么编写和使用自定义的Shell函数和函数库”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux下怎么编写和使用自定义的Shell函数和函数库”吧!

在 Linux 系统下,Shell 脚本可以在各种不同的情形下帮到我们,例如展示信息,甚至 自动执行特定的系统管理任务,创建简单的命令行工具等等。

在本指南中,我们将向 Linux 新手展示如何可靠地存储自定义的 shell 脚本,解释如何编写 shell  函数和函数库,以及如何在其它的脚本中使用函数库中的函数。

Shell 脚本要存储在何处

为了在执行你自己的脚本时不必输入脚本所在位置的完整或绝对路径,脚本必须被存储在 $PATH 环境变量所定义的路径里的其中一个。

使用下面的命令可以查看你系统中的 $PATH 环境变量:

$ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

通常来说,如果在用户的家目录下存在名为 bin 的目录,你就可以将 shell 脚本存储在那个目录下,因为那个目录会自动地被包含在用户的 $PATH  环境变量中(LCTT 译注:在 Centos 6/7 下是这样的,在 Debian 8 下不是这样的,在 Ubuntu 16.04 下又是这样的)。

因此,在你的主目录下创建 bin 目录吧(当然这里也可以用来存储 Perl、Awk 或 Python 的脚本,或者其它程序):

$ mkdir ~/bin

接着,建立一个名为 lib(libraries 的简写)的目录来存放你自己的函数库。你也可以在其中存放其它编程语言的函数库,如 C ,Python  等语言。在 lib 目录下建立另一个名为 sh 的目录,这个目录将被用来存放你的 shell 函数库:

$ mkdir -p ~/lib/sh

创建你自己的 Shell 函数和函数库

一个 shell 函数 就是在脚本中能够完成特定任务的一组命令。它们的工作原理与其他编程语言中的过程(LCTT 译注:可能指的是类似 SQL  中的存储过程之类的吧)、子例程、函数类似。

编写一个函数的语法如下:

函数名() { 一系列的命令 }

( LCTT 校注:在函数名前可以加上 function 关键字,但也可省略不写)

例如,你可以像下面那样在一个脚本中写一个用来显示日期的函数:

showDATE() {date;}

每当你需要显示日期时,只需调用该函数的函数名即可:

$ showDATE

简单来说 shell 函数库也是一个 shell 脚本,不过你可以在一个函数库中仅存储其它 shell 脚本中需要调用的函数。

下面展示的是在我的 ~/lib/sh 目录下一个名为 libMYFUNCS.sh 的库函数:

#!/bin/bash  ### Function to clearly list directories in PATH  showPATH() {    oldifs="$IFS"   ### store old internal field separator   IFS=:              ### specify a new internal field separator   for DIR in $PATH<br>  do<br>     echo $DIR<br>  done   IFS="$oldifs"    ### restore old internal field separator } ### Function to show logged user showUSERS() {   echo -e “Below are the user logged on the system:\n”   w } ### Print a user&rsquo;s details  printUSERDETS() {   oldifs="$IFS"    ### store old internal field separator   IFS=:                 ### specify a new internal field separator   read -p "Enter user name to be searched:" uname   ### read username   echo ""   ### read and store from a here string values into variables   ### using : as  a  field delimiter   read -r username pass uid gid comments homedir shell <<< "$(cat /etc/passwd | grep   "^$uname")"   ### print out captured values   echo -e "Username is            : $username\n"   echo -e "User's ID                 : $uid\n"   echo -e "User's GID              : $gid\n"   echo -e "User's Comments    : $comments\n"   echo -e "User's Home Dir     : $homedir\n"   echo -e "User's Shell             : $shell\n"   IFS="$oldifs"         ### store old internal field separator }

保存文件并且给脚本添加执行权限。

如何从函数库中调用函数

要使用某个 lib 目录下的函数,首先你需要按照下面的形式 将包含该函数的函数库导入到需要执行的 shell 脚本中:

$ . /path/to/lib 或$ source /path/to/lib

(LCTT 译注:***行的 . 和路径间必须是有空格的)

这样你就可以像下面演示的那样,在其它的脚本中使用来自 ~/lib/sh/libMYFUNCS.sh 的 printUSERDETS 函数了。

在下面的脚本中,如果要打印出某个特定用户的详细信息,你不必再一一编写代码,而只需要简单地调用已存在的函数即可。

创建一个名为 test.sh 的新文件:

#!/bin/bash  ### include lib .  ~/lib/sh/libMYFUNCS.sh ### use function from lib printUSERDETS ### exit script exit 0

保存这个文件,并使得这个脚本可被执行,然后运行它:

$ chmod 755 test.sh $ ./test.sh

Linux下怎么编写和使用自定义的Shell函数和函数库

编写 shell 函数

在本文中,我们介绍了在哪里可靠地存储 shell 脚本,如何编写自己的 shell 函数和函数库,以及如何在一个普通的 shell  脚本中从函数库中调用库中的某些函数。

到此,相信大家对“Linux下怎么编写和使用自定义的Shell函数和函数库”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Linux下怎么编写和使用自定义的Shell函数和函数库

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Linux下怎么编写和使用自定义的Shell函数和函数库

本篇内容主要讲解“Linux下怎么编写和使用自定义的Shell函数和函数库”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux下怎么编写和使用自定义的Shell函数和函数库”吧!在 Linu
2023-06-16

Hive中如何编写和使用自定义函数

在Hive中,可以通过创建UDF(User Defined Function)来编写和使用自定义函数。UDF可以是一元函数、二元函数或聚合函数,可以用于对数据进行处理、转换或计算。以下是在Hive中编写和使用自定义函数的基本步骤:创建UD
Hive中如何编写和使用自定义函数
2024-03-12

MySQL内置函数和自定义函数怎么使用

这篇“MySQL内置函数和自定义函数怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MySQL内置函数和自定义函数怎么
2023-07-02

JavaScript函数怎么定义和使用

本文小编为大家详细介绍“JavaScript函数怎么定义和使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“JavaScript函数怎么定义和使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.用函数语句定义
2023-07-02

如何在MySQL中使用PHP编写自定义存储过程和函数

创建存储过程和函数创建存储过程或函数,可实现数据库中的自定义逻辑。存储过程用于执行复杂的查询或修改数据,而函数用于计算并返回特定值。优势:优化性能代码重用增强安全性业务逻辑封装示例:存储过程获取客户订单:CREATEPROCEDUREget_customer_orders(INcustomer_idINT)函数计算订单总额:CREATEFUNCTIONget_order_total(INorder_idINT)RETURNSDECIMAL注意事项:谨慎使用,以免影响性能代码无法直接修改创建前应仔细考虑逻辑
如何在MySQL中使用PHP编写自定义存储过程和函数
2024-04-09

如何在MySQL中使用JavaScript编写自定义存储过程和函数

如何在MySQL中使用JavaScript编写存储过程和函数在MySQL中使用JavaScript编写自定义存储过程和函数可以提供灵活性、性能和与SQL的集成。通过创建存储过程,您可以执行复杂逻辑并优化性能。创建函数允许您将代码模块化和重用。本文详细介绍了使用JavaScript创建和使用存储过程和函数的步骤,并讨论了它们的优点和限制。
如何在MySQL中使用JavaScript编写自定义存储过程和函数
2024-04-13

如何在MySQL中使用PHP编写自定义存储过程和函数

要在MySQL中使用PHP编写自定义存储过程和函数,可以按照以下步骤进行操作:1. 首先,确保你已经安装了MySQL数据库和PHP。2. 在MySQL中创建一个存储过程或函数的语句。例如,创建一个名为get_total_users的函数,计
2023-10-20

如何在MySQL中使用C#编写自定义存储过程和函数

要在MySQL中使用C#编写自定义存储过程和函数,需要使用MySQL Connector/NET,它是一个用于与MySQL数据库进行通信的ADO.NET驱动程序。以下是创建自定义存储过程和函数的一般步骤:1. 安装MySQL Connect
2023-10-10

如何在MySQL中使用JavaScript编写自定义存储过程和函数

在MySQL中使用JavaScript编写自定义存储过程和函数是不可能的。MySQL只支持使用SQL语言来编写存储过程和函数。要在MySQL中创建自定义存储过程,可以使用以下语法:```sqlDELIMITER //CREATE PROCE
2023-10-10

如何在MySQL中使用Python编写自定义存储过程和函数

如何在MySQL中使用Python编写自定义存储过程和函数MySQL是一种常用的关系型数据库管理系统,而Python是一种强大的编程语言。结合两者可以实现更灵活和高效的数据库操作。MySQL中的存储过程和函数可以帮助我们封装常用的操作逻辑,
2023-10-22

C语言的函数怎么定义和使用

本篇内容主要讲解“C语言的函数怎么定义和使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言的函数怎么定义和使用”吧!关于函数函数是C语言的基本单元,函数中包含实现程序功能的代码。C语言程序
2023-06-30

C++友元函数怎么定义和使用

C++友元函数是指一个非成员函数可以访问类的私有成员和保护成员。以下是定义和使用C++友元函数的步骤:1. 在类的声明中声明友元函数。2. 在类的定义中定义友元函数。3. 在友元函数的实现中访问类的私有成员和保护成员。下面是一个例子:```
2023-10-11

使用 PHP 内置函数和自定义函数去重数组的性能对比

array_unique() 是去重数组性能最好的内置函数。哈希表法自定义函数性能最优,哈希值用作键,值为空。循环法实现简单但效率低,建议使用内置或自定义函数进行去重。array_unique() 耗时 0.02 秒、array_rever
使用 PHP 内置函数和自定义函数去重数组的性能对比
2024-04-26

PHP 预定义函数和用户自定义函数的执行顺序有什么区别?

php 执行函数遵循特定顺序:1. 预定义函数(最高优先级);2. 用户自定义函数(按声明顺序)。预定义函数优先于自定义函数,例如 echo() 在 myfunction() 之前执行。PHP 预定义函数与自定义函数的执行顺序概览PHP
PHP 预定义函数和用户自定义函数的执行顺序有什么区别?
2024-04-17

如何在MySQL中使用PHP编写自定义存储引擎、触发器和函数

如何在MySQL中使用PHP编写自定义存储引擎、触发器和函数引言:MySQL 是一种流行的关系型数据库管理系统,提供了丰富的功能和扩展性。除了原生提供的存储引擎、触发器和函数外,用户还可以使用PHP编写自定义的存储引擎、触发器和函数,以满足
2023-10-22

如何在MySQL中使用C#编写自定义存储引擎、触发器和函数

如何在MySQL中使用C#编写自定义存储引擎、触发器和函数引言:MySQL是一种流行的关系型数据库管理系统,它支持各种存储引擎、触发器和函数。在MySQL中,我们可以使用C#语言编写自定义的存储引擎、触发器和函数,以满足特定的业务需求。本文
2023-10-22

如何在MySQL中使用Python编写自定义存储过程、触发器和函数

在MySQL中使用Python编写自定义存储过程、触发器和函数,可以通过使用Python的MySQL连接库来实现。以下是一个示例:1. 安装MySQL连接库pip install mysql-connector-python2. 连接到My
2023-10-20

如何在MySQL中使用Python编写自定义存储过程、触发器和函数

如何在MySQL中使用Python编写自定义存储过程、触发器和函数本文介绍在MySQL中使用Python编写存储过程、触发器和函数的方法。它涵盖了创建、调用和需要注意的事项。存储过程用于封装复杂的SQL查询或操作,触发器在数据库事件发生时自动执行操作,而函数提供可重用的逻辑和计算。文中提供了使用Python的示例代码,并强调了使用MySQL内置函数和参数化查询的重要性。
如何在MySQL中使用Python编写自定义存储过程、触发器和函数
2024-04-09

编程热搜

目录