Contents

运行txt文件中bash命令

1. 概述

在本教程中,我们将了解如何在当前 shell 中运行 txt 文件中的 bash 命令。

2. 使用cat

假设我们有一个名为sample.txt的文件,其中包含一个echo 命令和一组变量:

$ cat sample.txt
echo "Hello World!"
var="variable is set"

我们可以使用bash 命令运行我们的文件:

$ bash sample.txt
Hello World!

** bash读取文件内容并在当前 shell 中执行**。因此,我们可以访问文件中所有已定义的变量:

$ echo $var
variable is set

请注意,要使用bash运行我们的文件,我们不需要使用chmod 来获得执行权限

bash是我们系统中已安装的 shell 之一。因此,我们也可以使用其他已安装的 shell。要查看所有可用 shell 的列表,我们可以查看*/etc/shells*文件:

$ cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/bin/rbash
/bin/dash

我们可以使用任何可用的 shell 执行我们的文件。让我们使用sh 运行我们的文件:

$ sh sample.txt
Hello World!

3. 使用source

让我们使用source 命令执行我们的文件:

$ source sample.txt
Hello World!

** source读取文件并执行当前 shell 中的行**。因此,如果我们设置一个变量,它将保持设置状态,如果我们的脚本中有exit命令,我们的会话将退出:

$ echo $var 
variable is set

4. 使用点

我们也可以使用点来执行我们的文件:

$ . sample.txt
Hello World!

点的功能与** source命令相同**。

4.1. 点斜线 (./) 不同

./sample.txt还将打印*Hello World!*声明但未设置变量:

$ ./sample.txt
Hello World!

使用./(点斜线) 将在不同的 shell 中执行该文件,一旦bash shell 退出,所有变量都将被销毁。因此,$var变量将为空:

$ echo $var

请注意,在这种情况下,我们需要执行权限才能运行该文件。