Linux Shell脚本:打开多个终端并运行命令?
我正在尝试创建一个非常简单的shell脚本,它打开并运行我的程序的五个实例。对于batch,我将执行以下操作:Linux Shell脚本:打开多个终端并运行命令?,linux,bash,shell,Linux,Bash,Shell,我正在尝试创建一个非常简单的shell脚本,它打开并运行我的程序的五个实例。对于batch,我将执行以下操作: @echo off python webstore.py 55530 python webstore.py 55531 python webstore.py 55532 exit command1 &>/dev/null & command2 &>/dev/null & command3 &>/dev/null &
@echo off
python webstore.py 55530
python webstore.py 55531
python webstore.py 55532
exit
command1 &>/dev/null &
command2 &>/dev/null &
command3 &>/dev/null &
这将打开三个终端,并使用不同的命令行参数在每个终端上运行命令。如何使用在每个基于unix的平台上运行的shell脚本创建相同的脚本?我见过一些打开终端的命令,但它们是特定于平台的(gnome termial、xterm等等)
如何使用在每个基于unix的平台上运行的shell脚本创建相同的脚本
你的要求有点不合理。这样想:在Windows上,您总是在其、周期内,您唯一的选择是在Powershell和cmd.exe
之间。但在Linux上,它有点复杂:
rxvt
或xterm
fbterm
或tmux
这样的花式程序,否则它几乎不能同时处理多个任务,而且只能生成新的窗口zsh
、bash
、sh
、fish
等,它们都有自己的特点tmux
)周围编写脚本,并要求将其安装在目标机器上<代码>tmux正在运行:
(来源:) (这将在SSH、Linux控制台或上述任何其他场景中工作。) 但是,如果您不关心将要运行的命令的输出,您可以将它们从当前终端会话中分离出来,如下所示:
@echo off
python webstore.py 55530
python webstore.py 55531
python webstore.py 55532
exit
command1 &>/dev/null &
command2 &>/dev/null &
command3 &>/dev/null &
请注意:
&>/dev/null
,每个命令的输出都会相互干扰,这可能不是您想要的命令
实例就我个人而言,我会选择
tmux
或者根据是否需要查看控制台输出来分离解决方案。我不知道这方面的完美解决方案。您可以通过$shell
环境变量获得默认shell,但打开新终端与打开新终端窗口不同-使用exec“$shell”
打开新shell也不应打开新窗口。您可以使用sudo-apt-get-install-xdoool
和xdoool-key-ctrl+shift+n
-这可能是一种有点“跨发行版”的解决方案,因为大多数窗口管理器支持ctrl+shift+n打开新窗口签出(使用xdoool打开三个终端窗口并向它们发送命令)上一个列表中的第2点可以通过使用nohup
来解决,不是吗?是的,但我认为它有点超出了问题的范围-我只是想简单介绍一下可能的选项,而不想太详细。