【问题标题】:open a tmux window with x panes to run tasks in parallel, from bash从 bash 打开一个带有 x 个窗格的 tmux 窗口以并行运行任务
【发布时间】:2020-03-06 21:08:38
【问题描述】:

我有一个使用并行命令同时推送多个构建的脚本。

通常情况下,要么一切正常,要么什么都不做,但这不是一种非常可靠的方法。

脚本如下:

parallel ::: 'docker push a' 'docker push b' 'docker push c'

有没有办法,使用 bash 来制作命令数组,比如

commands = (docker push a' 'docker push b' 'docker push c')

然后打开一个 tmux 窗口,每个任务都有一个窗格,并在其自己的窗格中运行每个任务?所以我会分别查看所有输出。

实际上,我在 MacOS 上使用 zsh,但符合 bash 的解决方案会更便携。

【问题讨论】:

  • parallel --tmux docker push ::: a b c 也许?

标签: bash tmux


【解决方案1】:

类似:

for i in a b c; do
    if [ -z "$W" ]; then
        W=$(tmux neww -P "docker push $i")
    else
        tmux splitw -t$W "docker push $i" \; selectl tiled
    fi
done

如果您不希望窗格在阅读输出之前关闭,您可能需要在窗口上设置remain-on-exit 选项。

还有https://github.com/greymd/tmux-xpanes之类的东西,虽然我没用过。

【讨论】:

  • 我选择了 tmux-xpanes,因为它完全符合我的需要。不过感谢您的回答。
猜你喜欢
  • 2012-03-24
  • 1970-01-01
  • 2013-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-30
相关资源
最近更新 更多