创建函数-----------(在.bashrc文件中定义函数在命令行创建函数在命令行中使用函数)

Posted WEL测试

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建函数-----------(在.bashrc文件中定义函数在命令行创建函数在命令行中使用函数)相关的知识,希望对你有一定的参考价值。

6.6在命令行中使用函数

         脚本函数可以用于创建比较复杂的操作。脚本函数不仅可以用作shell脚本命令,也可以用作命令行界面的命令。一旦在shell中定义了函数,可以从系统的任意目录使用这个函数。不必担心PATH环境变量是否包含函数文件所在目录。关键是能使shell识别出这个函数。这有两种方法。

6.6.1在命令行创建函数

         shell在键盘输入命令时解释命令,函数可以直接在命令行定义。这有两种方法:

         第一种方法将函数定义在一行命令中:在命令行中定义函数时,每条命令的结尾必须包含分号,这样shell才知道命令在哪分开。

         第二种方法是使用多行命令定义函数。使用这种方法不需要在每条命令的结尾添加分号,只需按ENTER键。在函数末尾使用大括号时,shell知道定义函数结束。

         第6章创建函数-----------(在.bashrc文件中定义函数、在命令行创建函数、在命令行中使用函数)_shell在命令行中使用函数

         PS:使用命令行来创建函数应当十分小心。如果自定义函数与内置命令或其他命令同名,那么自定义函数将覆盖原有命令

6.6.2在.bashrc文件中定义函数

         直接在命令行定义shell函数的缺点是一旦退出shell,函数定义将失效。比较省事的方法是将函数定义放在shell每次启动都能重新载入的地方。.bashrc文件就是这样的地方。每次无论bash shell是交互式启动,还是从已有shell启动新shell,都会在主目录下查找这个文件。

         1.直接定义函数

         在主目录下的.bashrc文件中可以直接定义函数。大多数Linux发行版都已经在.bashrc文件中定义了一些内容,应当小心不要删除这些内容。只需在已有文件的末尾添加自定义函数。添加的函数在下一次启动新bash shell时生效。

         第6章创建函数-----------(在.bashrc文件中定义函数、在命令行创建函数、在命令行中使用函数)_shell在bashrc文件直接定义函数_02

         2.提供函数文件

         可以使用source命令(或称点操作符)将现有库文件的函数包含.bashrc脚本。确保包含库文件的准确路径名,这样bash shell才能够找到该库函数。再次启动shell之后,该库的所有函数都能在命令行界面使用。

         第6章创建函数-----------(在.bashrc文件中定义函数、在命令行创建函数、在命令行中使用函数)_shell在.bashrc文件中定义函数_03

         更好的是,shell还将全部已定义函数传递给子shell进程。对于所有从shelll会话运行的脚本,自定义函数随之可用。为验证这个优点,可以编写有自定义函数调用的脚本,切对自定义函数不加定义或供给。         

#!/bin/bash
#使用在.bashrc文件中定义的命令
value1=10
value2=5
addResult=`addem $value1 $value2`
mulResult=`multem $value1 $value2`
divResult=`divem $value1 $value2`

echo "The add of two number:$addResult"
echo "The mul of two number:$mulResult"
echo "The div of two number:$divResult"

第6章创建函数-----------(在.bashrc文件中定义函数、在命令行创建函数、在命令行中使用函数)_shell在.bashrc文件中定义函数_04


以上是关于创建函数-----------(在.bashrc文件中定义函数在命令行创建函数在命令行中使用函数)的主要内容,如果未能解决你的问题,请参考以下文章

正则与sed,grep,awk三剑客

sh 一个bash函数添加到〜/ .bash_profile(或〜/ .bashrc或其他)

关于Linux .bashrc文件详解

shell变量快速入门

如何在ubuntu中的bashrc文件中添加新行?

alias命令和.bashrc命令有啥关系吗?alias命令是通过修改.bashrc来实现的吗?