今天在学习shell的时候看到了function函数部分,书上说有 三种实现函数的方法,
1.在终端实现函数,成为交互式的函数
2.在shell脚本中实现函数,成为程序的一部分
3.在一个文件中定义函数,shell程序调用该函数。
下面我具体说一下这三种方法。
1.在终端实现的函数如下:
![](https://images2015.cnblogs.com/blog/1057983/201703/1057983-20170305171922516-2090608743.png)
即在终端写函数执行
2.在脚本中实现函数
这里要说的是执行数值运算:http://blog.csdn.net/taijianyu/article/details/6907288参考如下的链接
还有expr的用法如下:http://man.linuxde.net/expr
![](https://images2015.cnblogs.com/blog/1057983/201703/1057983-20170305173209829-1912212081.png)
执行结果如下:
![](https://images2015.cnblogs.com/blog/1057983/201703/1057983-20170305172502688-1573178159.png)
3.调用外部的函数,
![](https://images2015.cnblogs.com/blog/1057983/201703/1057983-20170305173532938-875200045.png)
这个调用的函数中必须. ./my_function.sh,不然的话读不到那个路径
![](https://images2015.cnblogs.com/blog/1057983/201703/1057983-20170305173802391-525785084.png)
![](https://images2015.cnblogs.com/blog/1057983/201703/1057983-20170305173850735-675823240.png)
当然你在写的时候还可以加自己定义的函数
********将文件载入shell 中:
这个文件为了避免错误,所以文件名和函数名统统一样,
. filename 该命令将此文件嵌入shell 中,即作为shell的内部命令了。
将一个普通的文件载入shell 中利用<点><空格><文件名>
执行时只需输入文件名经即可, myfind
set命令是查看有多少命令被载入shell中了
unset命令是从shell中删除此命令(函数)