📜  在新终端窗口中批量运行命令 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:51:28.277000             🧑  作者: Mango

在新终端窗口中批量运行命令 - Shell-Bash

在日常开发中,经常需要在多个终端窗口中运行不同的命令。如果手动打开多个终端窗口,并逐一输入命令,会极大地降低效率。

本教程将介绍如何使用Shell/Bash自动在新终端窗口中批量运行命令。

1. 安装expect

expect是一个自动化交互脚本工具,可用于编写简单的交互脚本。在本教程中,我们将使用expect来实现在新终端窗口中运行命令。

安装expect,可以使用以下命令:

sudo apt-get install expect
2. 编写脚本

创建一个run_in_new_terminal脚本,在其中编写需要运行的命令。以下是一个示例脚本:

#!/usr/bin/expect

# Set terminal size
set LINES 24
set COLUMNS 80

# Get command to run from arguments
set cmd [lindex $argv 0]

# Open new terminal window and run command
spawn gnome-terminal
send -- "$cmd\r"
interact

在以上脚本中,我们使用spawn命令在新终端窗口中打开gnome-terminal,并使用send命令向该窗口发送需要运行的命令。interact命令用于保持终端窗口打开。

3. 运行脚本

在终端中运行以下命令来运行我们刚才创建的脚本:

./run_in_new_terminal "ls -l"

该命令将在一个新的终端窗口中运行"ls -l"命令。

4. 批量运行命令

现在,我们已经了解了如何在新终端窗口中运行命令。我们可以使用循环在多个终端窗口中运行不同的命令。

以下是一个示例脚本,该脚本将在3个新终端窗口中运行3个不同的命令:

#!/bin/bash

# Loop through commands to run
commands=("ls -l" "echo 'Hello World'" "pwd")
for cmd in "${commands[@]}"
do
    # Open new terminal window and run command
    ./run_in_new_terminal "$cmd"
done

以上脚本使用循环,在新终端窗口中运行了3个不同的命令。

结论

通过本教程,我们已经学习了如何使用expect在Shell/Bash中自动在新终端窗口中批量运行命令。这将大大提高我们的开发效率,并减少手动输入命令所需的时间。