如何让我的 shell 脚本自动在新控制台中运行?

Bor*_*rge 7 bash

您好,我正在运行 Ubuntu 10.04 并学习 ROS(机器人操作系统),这意味着我输入了相当多的 shell 命令

我目前正在创建一些 BASH 脚本文件以使我的工作更轻松,但某些命令必须在另一个控制台中运行

所以请告诉我我必须在我的 .sh 文件中写入哪些命令,以便它可以在一个窗口中运行它的命令,然后启动另一个窗口,在其中运行其他命令,但来自同一个 .sh 文件

或者它们可能位于不同的 .sh 文件中,只需在不同的控制台中运行即可。

enz*_*tib 5

你可以在另一个终端模拟器窗口中运行你的脚本,我想gnome-terminal用命令

gnome-terminal -x ./script
Run Code Online (Sandbox Code Playgroud)

您可以简化在您的 ~/.bashrc

start() {
  gnome-terminal -x "$@"
}
Run Code Online (Sandbox Code Playgroud)

在哪里可以选择您喜欢的名称而不是start. 您以这种方式使用该功能

start ./command arg1 arg2
Run Code Online (Sandbox Code Playgroud)

(您需要重新启动终端才能让 shell 了解新功能)。

如您所见,有一个小问题,一旦命令终止,窗口就会关闭。为避免这种情况,您可以将命令包装在 shell 脚本中,并在最后一行添加read命令:

#!/bin/sh
# script

./command arg1 arg2
read answer
Run Code Online (Sandbox Code Playgroud)

然后当你打电话

start ./script
Run Code Online (Sandbox Code Playgroud)

它不会关闭,等待您的输入。

不幸的是,很难在start函数中实现自动化。