美文网首页Shell
Shell学习笔记-脚本执行方式

Shell学习笔记-脚本执行方式

作者: 赵客缦胡缨v吴钩霜雪明 | 来源:发表于2020-11-15 07:32 被阅读0次

shell编程的时候,往往不会把所有功能都写在一个脚本中,这样不太好维护,需要多个脚本文件协同工作。

那么问题来了,在一个脚本中怎么调用其他的脚本呢?

有三种方式,分别是fork、source和exec

1. fork

即通过sh 脚本名进行执行脚本的方式。

下面通过一个简单的例子来讲解下它的特性。

创建father.sh,内容如下:

#!/bin/bash

echo "父shell进程开始执行"
sh son.sh #父shell fork子shell环境执行另一个脚本
echo "父shell进程执行完毕"

创建son.sh,内容如下:

#!/bin/bash

echo "子shell被调用"

执行sh father.sh:

[wangsl@wangsl]# sh father.sh 
父shell进程开始执行
子shell被调用
父shell进程执行完毕

通过以上例子,可以知道fork的特性为:

在一个脚本中调用另一个脚本,被调用脚本执行完成之后返回给父shell进程,父shell进程继续执行剩下的指令

2. source

即通过source或. 脚本名进行执行脚本的方式。

下面通过一个简单的例子来讲解下它的特性。

创建father.sh,内容如下:

#!/bin/bash

source son.sh  
#通过source方式将son.sh加载到当前shell环境中
echo "father访问son中定义的局部变量:$sonVar"

创建son.sh,内容如下:

#!/bin/bash

sonVar="son var"
echo "son定义了一个变量:sonVar=$sonVar"

执行sh father.sh:

[wangsl@wangsl]# sh father.sh 
son定义了一个变量:sonVar=son var
father访问son中定义的局部变量:son var

通过以上例子,可以知道source的特性为:

source调用,是把被调用脚本加载到当前的shell环境中来执行,就好像是在一个脚本里面运行一样,他们的定义的局部变量共享

3. exec

即通过exec 脚本名进行执行脚本的方式。

下面通过一个简单的例子来讲解下它的特性。

创建father.sh,内容如下:

#!/bin/bash

echo "父shell开始执行"
exec sh son.sh
echo "父shell完成执行,但是这句话不会被执行"

创建son.sh,内容如下:

#!/bin/bash

echo "子shell被父shell exec调用,执行权已经被抢占过来了,不会在交回给父shell进程"

执行sh father.sh:

[wangsl@wangsl]# sh father.sh 

父shell开始执行
子shell被父shell exec调用,执行权已经被抢占过来了,不会在交回给父shell进程

通过以上例子,可以知道exec的特性为:

exec调用,也是fork一个子shell环境来执行被调用脚本,但是父shell环境的执行权会被剥夺,也就是执行权被交给了被调用脚本,父shell环境不再拥有执行权,无论父shell脚本中的指令是否执行完成,都不在被执行,随着子shell进程的结束而结束。

相关文章

  • Shell学习笔记-脚本执行方式

    shell编程的时候,往往不会把所有功能都写在一个脚本中,这样不太好维护,需要多个脚本文件协同工作。 那么问题来了...

  • shell基础

    shell脚本 1.shell脚本执行方式 1.1 添加执行权 1.2 指定shell命令 2.shell变量 2...

  • 如何执行Shell脚本

    通常执行shell脚本有两种方式。以脚本/data/shell/test.sh为例: 当前目录的方式执行,进入脚本...

  • Shell 脚本入门: 编写格式和执行方式

    本文要点 Shell 脚本的编写规范 执行Shell 脚本文件的 3 种方式 与 区别 1. Shell 脚本的编...

  • [Linux]Shell

    shell:命令解释器,驱动linux内核;应用程序调用shell命令 1.Shell脚本的执行方式 脚本格式要求...

  • shell脚本执行方式

    现有简单的shell脚本文件如下所示: 下面介绍4中执行该shell脚本的方式 一、使用“.”号 “.”用于执行某...

  • Shell脚本执行方式

    执行方式很简单,第一种是绝对路径直接执行,第二种是bash 加上脚本文件名称。 在写bash脚本的时候,第一行固定...

  • Shell十三问 学习笔记

    文本处理 Shell脚本编程 Shell 十三问 学习笔记 shell and Carriage 关系 Shell...

  • 6、shell脚本执行方式

    在Linux中shell脚本的执行方式有以下三种,其执行方式与区别如下: 直接执行脚本,即 路径/script.s...

  • shell脚本运行的方式

    Linux中Shell脚本的执行通常有4种方式,分别为:工作目录执行,绝对路径执行,sh执行,Shell环境执行。...

网友评论

    本文标题:Shell学习笔记-脚本执行方式

    本文链接:https://www.haomeiwen.com/subject/jehvbktx.html