怎样复用外部Shell脚本

在Linux开发中,经常会编写shell脚本来执行一些任务,通常是一个脚本只做一件事,随着任务的增加,脚本会越来越多,可复用的地方也会逐渐增加,这时就需要提取出脚本中的公共的功能放到一个通用的脚本中,其他脚本都能复用它

本篇文章介绍shell脚本中如何执行外部脚本,如何调用外部脚本中的函数,以及脚本复用相关的方法

执行外部脚本的方式

假如在当前目录有 a.sh 脚本,内容如下


  1. #!/bin/bash 
  2.  
  3. echo "a.sh…" 

在一个脚本中执行外部脚本主要有以下几种方式

  • source 外部脚本名字

在当前目录下的 b.sh 脚本,内容如下:


  1. #!/bin/bash 
  2.  
  3. source a.sh 
  4. echo "b.sh…" 

执行 ./b.sh,结果如下


  1. [root@ecs-centos-7 ~]# ./b.sh  
  2. a.sh… 
  3. b.sh… 

脚本中 source a.sh 命令 会先执行当前目录下的 a.sh脚本,所以结果会先输出 a.sh…再输出 b.sh脚本本身的打印

  • 点号 外部脚本名字

把 b.sh 脚本中执行a.sh脚本的语句修改成 点号 + 空格 + a.sh ,修改之后的脚本内容如下:

注意:点号和a.sh之间一定要加上空格,否则执行的时候会出错


  1. #!/bin/bash 
  2.  
  3. . a.sh 
  4. echo "b.sh…" 

执行 ./b.sh,结果如下


  1. [root@ecs-centos-7 ~]# ./b.sh  
  2. a.sh… 
  3. b.sh… 

在上述脚本中, . a.sh 会先执行a.sh脚本, 结果会先输出 a.sh…再输出 b.sh…

  • sh 外部脚本名字

sh 外部脚本名字 和 ./外部脚本名字 两种方式是一样的,选择哪一种方式都没问题,下面是以前面一种方式为例说明的

把 b.sh 脚本中 source a.sh修改成 sh a.sh ,修改之后的脚本内容如下:


  1. #!/bin/bash 
  2.  
  3. sh a.sh 
  4. echo "b.sh…" 

执行 ./b.sh 命令, 结果如下


  1. [root@ecs-centos-7 ~]# ./b.sh  
  2. a.sh… 
  3. b.sh… 

可以看出,结果输出和上面两种方式是一样的

【声明】:芜湖站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

相关文章