大家都知道,在命令行上直接定义shell函数的明显缺点是退出shell时,函数就消失了。对于复杂的函数来说,这可是个麻烦事。
不过南昌网络公司小编可以告诉大家一个非常简单的方法,那就是将函数定义在一个特定的位置,这个位置在每次启动一个新shell的时候,都会由shell重新载入。较佳的地点就是在.bashrc文件。bash shell在每次启动时都会在主目录下查找这个文件,不管是交互式shell还是从现有shell中启动的新shell。下面小编就来为大家具体介绍一下:
1、直接定义函数
可以直接在主目录下的.bashrc文件中定义函数。许多Linux发行版已经在.bashrc文件中定义了一些东西,所以注意不要误删了。把你写的函数放在文件末尾就行了。
$ cat .bashrc
# .bashrc
# Source global definitions
if [ -r /etc/bashrc ]; then
. /etc/bashrc
fi
function addem {
echo $[ $1 + $2 ]
}
$
该函数会在下次启动新bash shell时生效。随后你就能在系统上任意地方使用这个函数了。
2、读取函数文件
只要是在shell脚本中,都可以用source命令(或者它的别名点操作符)将库文件中的函数添加到你的.bashrc脚本中。
$ cat .bashrc
# .bashrc
# Source global definitions
if [ -r /etc/bashrc ]; then
. /etc/bashrc
fi
. /home/rich/libraries/myfuncs
$
要确保库文件的路径名正确,以便bash shell能够找到该文件。下次启动shell时,库中的所有函数都可在命令行界面下使用了。
$ addem 10 5
15
$ multem 10 5
50
$ divem 10 5
2
$
更好的是,shell还会将定义好的函数传给子shell进程,这样一来,这些函数就自动能够用于该shell会话中的任何shell脚本了。你可以写个脚本,试试在不定义或使用source的情况下,直接使用这些函数。
$ cat test15
#!/bin/bash
# using a function defined in the .bashrc file
value1=10
value2=5
result1=$(addem $value1 $value2)
result2=$(multem $value1 $value2)
result3=$(divem $value1 $value2)
echo "The result of adding them is: $result1"
echo "The result of multiplying them is: $result2"
echo "The result of dividing them is: $result3"
$
$ ./test15
The result of adding them is: 15
The result of multiplying them is: 50
The result of dividing them is: 2
$
甚至都不用对库文件使用source,这些函数就可以完美地运行在shell脚本中。是不是很神奇呢?小编认为更多的还是方便。
好了,关于在.bashrc 文件中定义函数的做法,南昌网络公司小编就先为大家讲到这里,如果还有那些不明白的地方,可随时来电和我们联系。此外,如有想了解更多关于南昌网站制作、微信开发、APP开发等方面的资讯,欢迎关注百恒网络官网,更多相关知识与您分享!