在Shell中使用函数文件,引入文件
需要编写一个较庞大的脚本时,可能会涉及许多函数、变量。这是通常建议将众多的函数、变量放入一个单独的脚本内。这样做的好处很明显,不用担心某个函数、变量是否已经被定义和使用,也不用频繁地定义、清除函数和变量。
一、函数文件的编写
函数文件的格式和脚本文件一样。
[root@localhost shell]# cat function.example 
#函数文件中也可以不写下面这行Shell调用语句
#!/bin/bash
#function example.
#This is a function definition script.
#2013/12/17
hello()
{
        echo "Now is the function hello."
        echo "Hello! $1."
        return 
}
function hi()
{
        echo "Now si the function hi."
        echo "Hi! $1."
        return 
}二、函数文件的调用
要调用已经编写好的函数文件,可以像定制工作环境那样,将函数文件包含在脚本文件中,然后直接进行调用。
(1)下面引入调用函数文件的示例脚本call_func_file.sh。在这个脚本中使用执行的方式调用函数文件,然后再直接调用函数文件中的函数。
[root@localhost shell]# cat call_func_file.sh #!/bin/bash #This is a example script. #2013/12/17 #function.example . ./function.example #call function hell echo "Now call the function hello." hello Jhon #call function hi echo "Now call the function hi." hi Alix
从上面的示例文件中可以看出,调用函数文件的格式为:
. ./function.example
使用这种方式调用函数文件时,函数文件的路径应该与脚本文件的路径相同,否则在调用时应该使用函数文件的绝对路径或相对路径。
执行示例脚本:
[root@localhost shell]# ./call_func_file.sh Now call the function hello. Now is the function hello. Hello! Jhon. Now call the function hi. Now is the function hi. Hi! Alix.
(2)除了上面介绍的调用方式外,函数文件也可以像变量一样在命令提示符下使用。在命令提示符中调用函数文件后,就可以直接调用函数。
在命令提示符中调用函数文件:
[root@localhost shell]# . ./function.example [root@localhost shell]# hi Alix Now is the function hi. Hi! Alix. [root@localhost shell]# hello Alix Now is the function hello. Hello! Alix.
用户也可以使用上面的方法,将函数文件写入用户的环境变量配置文件中,然后像使用命令一样调用自定义的函数,以实现较复杂的功能。
相关推荐
  firefaith    2020-10-30  
   wangzhaotongalex    2020-09-22  
   woaimeinuo    2020-10-21  
   laisean    2020-09-01  
   libao    2020-09-16  
   卖口粥湛蓝的天空    2020-09-15  
   laisean    2020-11-11  
   大牛牛    2020-10-30  
   liguojia    2020-10-20  
   wangzhaotongalex    2020-10-20  
   JohnYork    2020-10-16  
   Julyth    2020-10-16  
   laisean    2020-09-27  
   flycappuccino    2020-09-27  
   liguojia    2020-09-27  
   流年浅滩    2020-10-23  
   liujianhua    2020-10-22  
   vvu    2020-09-16  
   Yyqingmofeige    2020-08-18  
   zhushixia    2020-08-17  
 