How to Call One Shell Script from Another Shell Script

在 Unix 和 Linux 的世界中,shell 脚本是一种强大的工具,可用于任务自动化和系统管理等。通常,我们需要从一个 shell 脚本中调用另一个 shell 脚本。这不仅有助于将复杂的脚本组织成可管理的模块,而且有助于脚本的可重用性和可维护性。

Basic Method

最直接的方法是在父脚本中使用它的路径。

假设您有两个脚本:script1.sh 和 script2.sh

script1.sh:

#!/bin/bash
echo "This is Script 1"

script2.sh:

#!/bin/bash
echo "Calling Script 1 from Script 2"
./script1.sh
echo "Script 1 has finished execution"

在此示例中,script2.sh 调用 script1.sh。两个脚本都在同一目录中,并且 script1.sh 是可执行的。

Passing Arguments

您还可以将参数从一个脚本传递到另一个脚本。

script1.sh:

#!/bin/bash
echo "Script 1 received the argument: $1"

script2.sh:

#!/bin/bash
./script1.sh "Hello from Script 2"

在本例中,script2.sh 将字符串 “Hello from Script 2”传递给 script1.sh,在 script1.sh 中作为 $1 (第一个参数) 接收。

Using Source Command

另一种方法是使用 source 命令或其简写(..),该方法在当前 shell 环境中执行被调用的脚本,这意味着被调用脚本的任何变量或更改都保留在调用脚本中。

script1.sh:

#!/bin/bash
MESSAGE="Message from Script 1"

script2.sh:

#!/bin/bash
source ./script1.sh
echo $MESSAGE

在本例中,script2.sh 将输出“Message from Script 1”,因为它保留了 script1.sh 所做的环境更改

我的开源项目

酷瓜云课堂-开源知识付费解决方案


鸠摩智首席音效师
472 声望9 粉丝

身强体健,龙精虎猛的活着。


引用和评论

0 条评论