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 环境变量中。

因此,在你的主目录下创建 bin 目录吧:

$mkdir~/bin

接着,建立一个名为 lib的目录来存放你自己的函数库。你也可以在其中存放其它编程语言的函数库,如 C ,Python 等语言。在

lib 目录下建立另一个名为 sh 的目录,这个目录将被用来存放你的 shell 函数库:

$mkdir-p~/lib/sh

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

一个 shell 函数 就是在脚本中能够完成特定任务的一组命令。它们的工作原理与其他编程语言中的过程、子例程、函数类似。

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

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

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

showDATE(){date;}

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

$showDATE

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

脚本中需要调用的函数。

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

#!/bin/bash###FunctiontoclearlylistdirectoriesinPATHshowPATH(){oldifs="$IFS"###storeoldinternalfieldseparatorIFS=:###specifyanewinternalfieldseparatorforDIRin$PATH

do

echo$DIR

doneIFS="$oldifs"###restoreoldinternalfieldseparator}###FunctiontoshowloggedusershowUSERS(){echo-eBelowaretheuserloggedonthesystem:\nw}###PrintausersdetailsprintUSERDETS(){oldifs="$IFS"###storeoldinternalfieldseparatorIFS=:###specifyanewinternalfieldseparatorread-p"Enterusernametobesearched:"uname###readusernameecho""###readandstorefromaherestringvaluesintovariables###using:asafielddelimiterread-rusernamepassuidgidcommentshomedirshell"$"###printoutcapturedvaluesecho-e"Usernameis:$username\n"echo-e"User'sID:$uid\n"echo-e"User'sGID:$gid\n"echo-e"User'sComments:$comments\n"echo-e"User'sHomeDir:$homedir\n"echo-e"User'sShell:$shell\n"IFS="$oldifs"###storeoldinternalfieldseparator}

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

如何从函数库中调用函数

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

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

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

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

创建一个名为 的新文件:

#!/bin/bash###includelib.~/lib/sh/###usefunctionfromlibprintUSERDETS###exitscriptexit0

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

$chmod755$./

编写 shell 函数

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

shell 脚本中从函数库中调用库中的某些函数。

在之后,我们还会介绍一种相当简单直接的方式来将 Vim 配置为一个编写 Bash 脚本的 IDE。在那之前,记得要经常关注我们

,如果能和我们分享你对这份指南的想法就更好了。

作者简介:

Aaron Kili 是一名 Linux 和 F.O.S.S 爱好者、一名未来的 Linux 系统管理员、web

开发者,目前是一名 TecMint 上的内容创造者,他喜欢计算机相关的工作,并且坚信知识的分享。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值