【问题标题】:Run a shell script in new terminal from current terminal从当前终端在新终端中运行 shell 脚本
【发布时间】:2012-11-18 21:13:06
【问题描述】:

如何在 Linux 的新终端中从 Windows 中的“start test.bat”之类的终端运行 shell 脚本,它也应该在控制台模式下运行。

【问题讨论】:

  • 您需要支持哪些窗口环境?

标签: linux shell terminal


【解决方案1】:

这里有一个简单的例子让你开始:

要编写 shell 脚本,请在命令提示符下执行此操作:

echo -e '#!/bin/sh\n echo "hello world"' > abc.sh

这样写:

#!/bin/sh
echo "hello world"

到一个名为abc.sh的文件

接下来,您想通过以下方式将其设置为可执行:

chmod +x abc.sh

现在,您可以通过以下方式运行它:

./abc.sh

你应该看到:

hello world

在您的终端上。

要在新终端中运行它,您可以:

gnome-terminal -x ./abc.sh

或者,如果是xterm:

xterm -e ./abc.sh

这是list of different terminal emulators。

或者,您只需在当前终端中运行它,而是通过以下方式将其作为背景:

./abc.sh &

【讨论】:

  • 它工作正常非常感谢您的帮助,我还有一个疑问,所有类型的 linux os 是否都支持 gnome-terminal 命令?
  • @RaviKumar 不,这通常不是真的。这在很大程度上取决于 linux 发行版使用的桌面环境:en.wikipedia.org/wiki/List_of_terminal_emulators 通常是 gnome-terminal 或 xterm
  • 我还需要在 telnet 会话中使用 linux 机器时应该工作的命令。我希望会有答案。
  • @RaviKumar 我不太清楚你的意思。
  • 嗨桑普森。我在另一个窗口中执行的 shell 脚本需要挂在那里。所以我原来的sh文件需要继续下一行命令。我怎样才能做到这一点?谢谢!
【解决方案2】:

我来到这里是想弄清楚如何让脚本生成一个终端并在其中自行运行,所以对于那些想要这样做的人,我想出了这个解决方案:

if [ ! -t 0 ]; then # script is executed outside the terminal?
  # execute the script inside a terminal window with same arguments
  x-terminal-emulator -e "$0" "$@"
  # and abort running the rest of it
  exit 0
fi

【讨论】:

  • 等一下,如果脚本调用了参数怎么办?他们不会被赋予新终端中的脚本,对吗?
【解决方案3】:

对于 gnome 试试这个。

将 ls 替换为你要运行的命令

gnome-terminal -x sh -c "ls|less"

我希望这是你想要的

【讨论】:

    【解决方案4】:

    截至 2020 年 1 月,gnome-terminal 中的 -e 和 -x 选项仍然可以正常运行,但会抛出以下警告:

    对于-e:

    # 选项“-e”已弃用,可能会在以后的版本中删除 gnome 终端。

    # 使用“--”终止选项并将命令行放到 在它之后执行。

    对于-x:

    # 选项“-x”已弃用,可能会在以后的版本中删除 gnome 终端。

    # 使用“--”终止选项并将命令行放到 在它之后执行。

    根据以上信息,我确认您可以运行以下两个命令而不会收到任何警告消息:

    gnome-terminal -- /bin/sh -c '<your command>'
    
    gnome-terminal -- ./<your script>.sh
    

    我希望这可以帮助目前遇到此问题的其他人:)

    【讨论】:

      猜你喜欢
      • 2016-04-29
      • 1970-01-01
      • 2021-11-27
      • 1970-01-01
      • 2020-12-18
      • 2019-01-04
      • 1970-01-01
      • 1970-01-01
      • 2016-08-06
      相关资源
      最近更新 更多