📅  最后修改于: 2023-12-03 14:51:28.277000             🧑  作者: Mango
在日常开发中,经常需要在多个终端窗口中运行不同的命令。如果手动打开多个终端窗口,并逐一输入命令,会极大地降低效率。
本教程将介绍如何使用Shell/Bash自动在新终端窗口中批量运行命令。
expect是一个自动化交互脚本工具,可用于编写简单的交互脚本。在本教程中,我们将使用expect来实现在新终端窗口中运行命令。
安装expect,可以使用以下命令:
sudo apt-get install expect
创建一个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命令用于保持终端窗口打开。
在终端中运行以下命令来运行我们刚才创建的脚本:
./run_in_new_terminal "ls -l"
该命令将在一个新的终端窗口中运行"ls -l"命令。
现在,我们已经了解了如何在新终端窗口中运行命令。我们可以使用循环在多个终端窗口中运行不同的命令。
以下是一个示例脚本,该脚本将在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中自动在新终端窗口中批量运行命令。这将大大提高我们的开发效率,并减少手动输入命令所需的时间。