在命令行上直接定义shell函数的缺点是退出shell时,函数就消失了。对于复杂的函数来说,这可是个麻烦事。
一个非常简单的方法是将函数定义在一个特定的位置,这个位置在每次启动一个新shell的时候,都会由shell重新载入。
最佳地点就是.bashrc文件。bash shell在每次启动时都会在主目录下查找这个文件,不管是交互式shell还是从现有shell中启动的新shell。
可以直接在主目录下的.bashrc文件中定义函数:
$ cat .bashrc
# .bashrc
# Source global definitions
if [ -r /etc/bashrc ]; then
. /etc/bashrc
fi
function addem {
echo $[ $1 + $2 ]
}
$
该函数会在下次启动新bash shell时生效。随后你就能在系统上任意地方使用这个函数了。