详解shell中source、sh、bash、./执行脚本的区别

在Linux系统中,我们可以使用多种方式执行Shell脚本。本文将介绍四种常用的方法:source、sh、bash、./。这些方法之间有一些区别,本文将详细讲解它们的区别。

source命令

source命令用于在当前Shell环境中执行指定的Shell脚本。使用source命令执行脚本时,脚本中的变量和函数将在当前Shell环境中生效。例如,我们可以使用source命令执行一个简单的Shell脚本:

#!/bin/bash

# 定义变量
NAME="John"

# 定义函数
hello() {
    echo "Hello, $NAME!"
}

# 执行函数
hello

我们可以使用source命令执行上面的脚本:

source script.sh

在上面的命令中,我们使用source命令执行了script.sh脚本。脚本中定义的变量和函数将在当前Shell环境中生效。我们可以执行hello函数来验证它是否生效:

hello

输出结果如下:

Hello, John!

sh命令

sh命令用于在新的Shell环境中执行指定的Shell脚本。使用sh命令执行脚本时,脚本中的变量和函数将不会在当前Shell环境中生效。例如,我们可以使用sh命令执行一个简单的Shell脚本:

#!/bin/bash

# 定义变量
NAME="John"

# 定义函数
hello() {
    echo "Hello, $NAME!"
}

# 执行函数
hello

我们可以使用sh命令执行上面的脚本:

sh script.sh

在上面的命令中,我们使用sh命令执行了script.sh脚本。脚本中定义的变量和函数将不会在当前Shell环境中生效。我们可以执行hello函数来验证它是否生效:

hello

输出结果如下:

bash: hello: command not found

bash命令

bash命令用于在新的Bash Shell环境中执行指定的Shell脚本。使用bash命令执行脚本时,脚本中的变量和函数将在当前Shell环境中生效。例如,我们可以使用bash命令执行一个简单的Shell脚本:

#!/bin/bash

# 定义变量
NAME="John"

# 定义函数
hello() {
    echo "Hello, $NAME!"
}

# 执行函数
hello

我们可以使用bash命令执行上面的脚本:

bash script.sh

在上面的命令中,我们使用bash命令执行了script.sh脚本。脚本中定义的变量和函数将在当前Shell环境中生效。我们可以执行hello函数来验证它是否生效:

hello

输出结果如下:

Hello, John!

./命令

./命令用于在当前目录下执行指定的Shell脚本。使用./命令执行脚本时,脚本中的变量和函数将在当前Shell环境中生效。例如,我们可以使用./命令执行一个简单的Shell脚本:

#!/bin/bash

# 定义变量
NAME="John"

# 定义函数
hello() {
    echo "Hello, $NAME!"
}

# 执行函数
hello

我们可以使用./命令执行上面的脚本:

./script.sh

在上面的命令中,我们使用./命令执行了script.sh脚本。脚本中定义的变量和函数将在当前Shell环境中生效。我们可以执行hello函数来验证它是否生效:

hello

输出结果如下:

Hello, John!

示例说明

示例1:使用source命令执行脚本

我们可以使用source命令执行一个简单的Shell脚本:

#!/bin/bash

# 定义变量
NAME="Alice"

# 定义函数
hello() {
    echo "Hello, $NAME!"
}

# 执行函数
hello

我们可以使用source命令执行上面的脚本:

source script.sh

在上面的命令中,我们使用source命令执行了script.sh脚本。脚本中定义的变量和函数将在当前Shell环境中生效。我们可以执行hello函数来验证它是否生效:

hello

输出结果如下:

Hello, Alice!

示例2:使用./命令执行脚本

我们可以使用./命令执行一个简单的Shell脚本:

#!/bin/bash

# 定义变量
NAME="Bob"

# 定义函数
hello() {
    echo "Hello, $NAME!"
}

# 执行函数
hello

我们可以使用./命令执行上面的脚本:

./script.sh

在上面的命令中,我们使用./命令执行了script.sh脚本。脚本中定义的变量和函数将在当前Shell环境中生效。我们可以执行hello函数来验证它是否生效:

hello

输出结果如下:

Hello, Bob!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解shell中source、sh、bash、./执行脚本的区别 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • Linux中screen命令及使用方法

    以下是关于“Linux中screen命令及使用方法”的完整攻略,其中包含两个示例。 Linux中screen命令及使用方法 screen是一个在Linux中常用的命令行工具,它可以创建一个虚拟终端,使用户可以在同一终端中运行多个会话。本文将介绍screen命令的使用方法。 安装screen 在大多数Linux发行版中,screen已经预装。如果您的系统中没有…

    Shell 2023年5月16日
    00
  • Windows 7 Shell 命令大名单

    以下是关于“Windows 7 Shell 命令大名单”的完整攻略,其中包含两个示例说明。 1. 前言 Windows 7 Shell命令是Windows 7操作系统中非常常用的一种命令行工具,可以用于管理文件、网络、系统等方面。本攻略将介绍Windows 7 Shell命令大名单,包括常用的文件管理命令、网络管理命令、系统管理命令等。 2. 文件管理命令 …

    Shell 2023年5月16日
    00
  • Shell编程之case语句实战(小结)

    以下是关于“Shell编程之case语句实战(小结)”的完整攻略,其中包含两个示例说明。 1. 前言 在Shell编程中,case语句是一种非常常用的条件语句,可以根据不同的条件执行不同的命令。本攻略将介绍case语句的基本语法和实战应用,帮助你更好地掌握Shell编程。 2. case语句的基本语法 case语句的基本语法如下: case 变量 in 模式…

    Shell 2023年5月16日
    00
  • shell参数换行与shell输出换行的方法实例

    以下是关于“shell参数换行与shell输出换行的方法实例”的完整攻略,其中包含两个示例说明。 1. 前言 在编写shell脚本时,经常会遇到参数换行和输出换行的问题。本攻略将介绍如何解决shell参数换行和shell输出换行的问题,并提供两个示例说明。 2. 参数换行 在shell脚本中,如果需要将一个参数分成多行,可以使用反斜杠(\)将其分成多行。以下…

    Shell 2023年5月16日
    00
  • Shell alias给命令设置别名的实现方法

    以下是关于“Shell alias给命令设置别名的实现方法”的完整攻略,其中包含两个示例说明。 1. 前言 在Shell编程中,有时候需要给一些常用的命令设置别名,以便更方便地使用。本攻略将介绍如何使用alias命令给命令设置别名,并提供多个实例说明。 2. alias命令 alias命令是一种给命令设置别名的机制。在Linux系统中,可以使用alias命令…

    Shell 2023年5月16日
    00
  • 如何使用JAVA调用SHELL

    以下是关于“如何使用JAVA调用SHELL”的完整攻略,其中包含两个示例说明。 1. 前言 在Java应用程序中,有时需要调用Shell脚本来执行一些操作。本攻略将介绍如何使用Java调用Shell脚本。 2. 使用Java调用Shell脚本 Java提供了Runtime和ProcessBuilder两个类来执行Shell脚本。以下是使用Runtime和Pr…

    Shell 2023年5月16日
    00
  • shell数组操作简明总结

    以下是关于“Shell数组操作简明总结”的完整攻略,其中包含两个示例说明。 1. Shell数组操作 在Shell中,数组是一种特殊的变量类型,可以存储多个值。Shell数组的下标从0开始,可以是数字或字符串。以下是Shell数组的常用操作: 定义数组:可以使用以下语法定义数组: array_name=(value1 value2 … valuen) 例…

    Shell 2023年5月16日
    00
  • Shell脚本注释写法

    以下是关于“Shell脚本注释写法”的完整攻略,其中包含两个示例说明。 1. 前言 在Shell脚本编程中,注释是一种非常重要的文本形式,可以帮助我们更好地理解和维护代码。本攻略将介绍Shell脚本注释的写法。 2. 注释写法 2.1 单行注释 在Shell脚本中,使用#符号可以表示单行注释。其基本语法如下: # 这是一条单行注释 在本示例中,我们使用#符号…

    Shell 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部