linux 脚本 调用 脚本,在Shell脚本中调用另一个脚本的三种方式讲解

阅读: 评论:0

linux 脚本 调用 脚本,在Shell脚本中调用另一个脚本的三种方式讲解

linux 脚本 调用 脚本,在Shell脚本中调用另一个脚本的三种方式讲解

先来说一下主要以下有几种方式:

fork: 如果脚本有执行权限的话,path/to/foo.sh。如果没有,sh path/to/foo.sh。

exec: exec path/to/foo.sh

source:source path/to/foo.sh

fork

fork是最普通的, 就是直接在脚本里面用 path/to/foo.sh来调用 foo.sh这个脚本,比如如果是 foo.sh 在当前目录下,就是 ./foo.sh。运行的时候 terminal 会新开一个子 Shell 执行脚本 foo.sh,子 Shell 执行的时候, 父 Shell 还在。子 Shell 执行完毕后返回父 Shell。 子 Shell 从父 Shell 继承环境变量,但是子 Shell 中的环境变量不会带回父 Shell。

exec

exec与 fork不同,不需要新开一个子 Shell 来执行被调用的脚本. 被调用的脚本与父脚本在同一个 Shell 内执行。但是使用 exec 调用一个新脚本以后, 父脚本中 exec 行之后的内容就不会再执行了。这是 exec和 source的区别.

source

与 fork的区别是不新开一个子 Shell 来执行被调用的脚本,而是在同一个 Shell 中执行. 所以被调用的脚本中声明的变量和环境变量, 都可以在主脚本中进行获取和使用。

其实从命名上可以感知到其中的细微区别,下面通过两个脚本来体会三种调用方式的不同:

第一个脚本,我们命名为 1.sh:

#!/usr/bin/env bash

A=1

echo "before exec/source/fork: PID for 1.sh = $$"

export A

本文发布于:2024-01-31 20:05:49,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170670274731037.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:脚本   三种   方式   linux   Shell
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23