【问题标题】:quickly switch between gnu screens在 gnu 屏幕之间快速切换
【发布时间】:2017-05-17 10:33:18
【问题描述】:

我想在不同的 gnu 屏幕会话(不是 windows)之间快速切换。现在我可以使用screen -d 脱离一个会话并使用screen -r <sessionname> 重新连接到下一个会话,但是没有办法在一个命令中执行此操作吗? screen -d && screen -r <sessionname> 之类的东西?

【问题讨论】:

    标签: gnu-screen


    【解决方案1】:

    这很容易通过实用程序脚本来完成:

    #!/usr/bin/env bash
    
    set -eu
    set -o pipefail
    unset CDPATH
    : "${BASH:?bash shell is required}"
    
    
    screen -ls || true
    
    for s in $(screen -ls | tail -n +2 | head -n -2 | sort -R | cut -f2)
    do
        read -n 1 -s -r -p '[y/n] switch to '"$s"'?' REPLY
        if [[ "$REPLY" == "y" ]]
            then
                screen -DR "$s"
            else echo
        fi
    done
    

    将其保存为cycle-screen 并使其可执行。使用示例:

    There are screens on:
        43094.27    (Detached)
        47415.12    (Attached)
        54922.31    (Detached)
    3 Sockets in /var/folders/r5/7_prvssx301dyz4jz2pbky5w0000gn/T/.screen.
    
    [y/n] switch to 54922.31?
    

    键入y 以进入提示中指定的屏幕,或输入其他任何内容以跳过它。当您离开屏幕时(通过^a^d^dexit 或其他方式),您会收到下一个屏幕的提示。

    【讨论】:

      【解决方案2】:

      不,很遗憾,GNU 屏幕上没有这样的东西。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-10
        • 1970-01-01
        • 2020-04-08
        相关资源
        最近更新 更多