运行txt文件中bash命令
Contents
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
请注意,在这种情况下,我们需要执行权限才能运行该文件。