2017-05-17 154 views
0

我想快速切換不同的gnu屏幕會話(不是windows)。現在我可以從screen -d中脫離一個會話,並使用screen -r <sessionname>重新連接到下一個會話,但是在一個命令中沒有辦法做到這一點嗎?像screen -d && screen -r <sessionname>在gnu屏幕之間快速切換

謝謝!

回答

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^d,exit或其他),你會看到後面屏幕的提示。

0

不,不幸的是,在GNU屏幕上沒有這樣的事情。