如何在终端窗口中运行多个bash脚本
1. 概述
在本文中,我们将研究如何在我们的终端中运行多个 bash 脚本。有时我们可能需要在同一个终端窗口中运行不同的脚本。例如,它可能用于监控或复杂的自动化。每当我们发现自己处于这种情况时,我们可能不知道正确的处理方法。这就是我们将在本文中处理的内容。
2. 在终端中运行多个 Bash 脚本的方法
有几种方法可以实现这一点,但我们将看几个例子。
2.1. 运算符*&&,||* , 和*;*
我们要看的第一个逻辑运算符是AND运算符:*&&。*在 Bash 中,它用于将命令链接在一起。它还可以用于同时运行两个不同的脚本。让我们看一个例子:
$ ./script1.sh && ./script2.sh
Hello World!!
Hello World!!
我们有两个 Bash 脚本,即script1.sh和script2.sh。这些脚本仅在运行时返回*“Hello World”* 。
如果我们执行的第一个脚本遇到错误,则第二个脚本不会运行。
我们要看的第二个逻辑运算符是OR运算符*||*。它可用于一起运行不同的命令。OR运算符一个接一个地运行两个命令,但第二个命令仅在第一个命令以错误结束时执行。
使用我们的两个脚本,我们可以像这样运行它们:
$ ./script1.sh || ./script2.sh
Hello World!!
只有当第一个脚本遇到错误时,第二个脚本才会执行。
我们要看的最后一个运算符是*;. 它还可以用于顺序运行两个脚本。与OR*运算符不同,当我们的第一个脚本正确结束时,第二个脚本仍会执行。
在此示例中,我们将尝试使用无效命令在我们的终端中显示Hello World
$ ./script1.sh ; ./script2.sh
./script1.sh: 1: ech: not found
Hello World 2!!
有更多的方法来对命令进行分组,例如使用花括号或圆括号 。
2.2. bg和fg命令
同时运行两个脚本的一个方便的 Linux 命令是bg命令。使用bg命令,我们可以恢复和控制作业在终端中的运行方式。我们可以设置一个脚本在后台运行,同时在前台运行一个新的脚本。让我们来看看:
$ ./script1.sh
^Z
[1] + 29680 suspended ./script1.sh
$ bg
[1] + 29680 continued ./script1.sh
$ ./script2.sh
Hello World!!
我们对此处的脚本进行了一些修改,以帮助我们更好地理解bg 的工作原理。现在,script1.sh输出一个睡眠 30 秒的命令, “sleep 30s”。而script2.sh仍然输出*“Hello World!!”*。
当我们运行script1.sh 时,我们通常会等待sleep命令结束,但我们可以暂停该任务并使其在后台运行,方法是使用Ctrl+z暂停它,然后按bg。现在我们有script1.sh在后台运行,还有运行任何其他脚本的空间,在这种情况下,它将是script2.sh来输出*“Hello World!!”*。
如果您决定要将在后台运行的脚本调到前台,您可以使用fg命令来实现:
$ ./script1.sh
^Z
[1] + 320642 suspended ./script1.sh
$ ./script2.sh
Hello World 2!!
$ fg
[1] + 320642 continued ./script1.sh
script1.sh已使用fg命令返回到前台。作业有不同的状态,可以通过命令发送到后台、恢复和终止 。
2.3. 使用脚本运行多个脚本
在 Bash 脚本中,我们可以有一个脚本执行两个或多个脚本。为此,将这些脚本添加到我们要运行的主脚本中。例如,我们让script3执行script1和script2中的代码。script3.sh必须包含以下内容:
./script1.sh
./script2.sh
现在,当我们运行script3.sh时,我们有:
$ ./script3.sh
Hello World!!
Hello World!!