Bash脚本编程(四)之Shell函数
Bash的Shell函数是一种能把若干UNIX/LINUX命令打包执行的方法,在执行时一个简单的名字就能够代替这些命令。执行函数就像执行普通的UNIX命令一样简单。Bash会在当前上下文的环境中执行Shell函数,而不再产生新的进程去解释函数。Bash alias别名和函数都能帮你为长或复杂的命令定义快捷方式。但是,alias别名不允许控制流,参数,以及其他有技巧的事情。而这些事情,函数都能做到。
| 清仓特价 韩版 李孝利 欧美復古罗马斗士 凉鞋 高跟鞋 实拍 | |
58.0元 |
Bash的Shell函数是一种能把若干UNIX/LINUX命令打包执行的方法,在执行时一个简单的名字就能够代替这些命令。执行函数就像执行普通的UNIX命令一样简单。Bash会在当前上下文的环境中执行Shell函数,而不再产生新的进程去解释函数。
Bash alias别名和函数都能帮你为长或复杂的命令定义快捷方式。但是,alias别名不允许控制流,参数,以及其他有技巧的事情。而这些事情,函数都能做到。我们将会在下面讲解。
这篇文章是我们正在进行的Bash脚本编程系列的一部分。你可以查看前三篇文章:Bash脚本编程简介,Bash的退出状态,以及Bash alias别名。
定义一个Bash函数的语法如下:
例1:一个显示指定后缀名文件的长列表的函数
函数“lsext”可以查找当前目录下的指定后缀名的文件。函数体内使用了find和ls命令。
例2:一个能够对一组文件执行指定命令的函数
下面的例子中,函数“batchexec”先找到指定后缀名的文件,再对这些文件执行指定的命令。
在上面的例子中,函数找到所有以.sh为后缀名的脚本,并且把脚本的权限修改为755。在函数体内,${@:2}表示第二个以及接下来的位置参数。
例3:能够生成随机密码的函数
下面的函数能够根据特定的字符生成给定长度的高强度随机密码。如果长度未被指定,那么默认生成12字符长的密码。
在上面的例子中,当rpass的参数为6时,函数生成字符串长度为6的随机密码。当rpass无参数时,那么函数生成12字符长度的密码。${1:-12}表示如果$1未定义或空时,12被返回,否则$1被返回。
例4:返回给定接口的IP地址的函数
下面的例子定义了一个函数“getip”以接口为参数,返回该接口的IP地址(默认返回接口ETH0的IP地址)。函数体内使用了ifconfig命令。
例5:打印机器信息的函数
此例定义了一个能够显示机器所有需要信息的函数。用户可以在启动文件中定义并调用该函数,以便于在启动时得到这些信息。
例6:格式化ls命令输出
函数首先清屏,然后将光标置于屏幕顶端,接着执行ls命令,最后再把光标置于屏幕底部。
使用type命令返回函数类别
Type是一个内建函数,可以返回函数类别。
Syntax:
type function-name
为了让你更方便的参考,你在这里得到上面的6个函数。
将这些函数放在你的~/.bash_profile文件中,这样就可以保证一直能够使用这些函数。
函数能够接受参数。在执行过程中,函数的参数会被赋值给Bash的特殊变量:位置参数。参数$0代表脚本的名字,是不能被改变的的。
在命令行中,你能像下面这样调用一个函数。
| 清仓特价 韩版 李孝利 欧美復古罗马斗士 凉鞋 高跟鞋 实拍 | |
58.0元 |
更多推荐
所有评论(0)