bash 不是内部或外部命令_Bash编程入门-4:函数

bash 不是内部或外部命令_Bash编程入门-4:函数_第1张图片

4.5 函数1)定义函数
脚本和函数有很多相似的地方。脚本实现了一整个脚本文件的程序复用,而函数复用了脚本内部的部分程序。
一个函数可以像脚本一个包含多个指令,用于说明该函数如果被调用会执行哪些活动。在定义函数时,我们需要花括号来标识函数包括的部分:


#!/bin/bash function my_info (){ #定义函数my_info function不是必须的,可省略,花括号是必须的!! lscpu >> log uname –a >> log free –h >> log } my_info #调用函数 #花括号中的三行命令就说明了执行函数时所进行的操作。
需要强调的是,函数定义只是食谱,并没有转化成具体的动作。只有通过调用函数,函数中的命令才能被真正执行,脚本中的最后一行就是在调用函数。调用函数时,只要函数名即可。2)函数的参数
像脚本一样,函数调用时还可以携带参数。在函数内部,我们同样可以用$1、$2这种形式的变量来使用参数:

#!/bin/bash  
function my_info (){      
       lscpu >> $1
      uname –a >> $1
      free –h >> $1  }    
my_info output.file            #调用函数,并且携带参数 
my_info another_output.file    #再次调用函数,携带另一个参数  


在上面的脚本中,进行了两次函数调用。函数调用时,分别携带了参数output.file和another_output.file。
函数中定义了参数,才能在调用函数时添加参数。4.6 跨脚本调用在Bash中使用source命令,可以实现函数的跨脚本调用
命令source的作用是在同一个进程中执行另一个文件中的Bash脚本。比如说,有两个脚本,my_info.bash和app.bash。脚本my_info.sh中的内容是:

#!/bin/bash  
function my_info (){   
          lscpu >> $1    
          uname –a >> $1    
          free –h >> $1 }


脚本app.bash中的内容是:

#!/bin/bash   
source my_info.bash    #调用另一个脚本 
my_info output.file    #调用另一个脚本中的函数  


运行app.bash时,执行到source命令那一行时,就会执行my_info.bash脚本。在app.bash的后续部分,就可以使用my_info.bash中的my_info函数。

你可能感兴趣的:(bash,不是内部或外部命令)