[Eisfair] Arbeiten über eine ssh-Verbindung

Christian Richter christian at richter-ch.de
Do Jan 22 10:30:10 CET 2026


Am 21.01.26 um 18:46 schrieb Olaf Jaehrling:

> Dieses Konstrukt hat leider den Nachteil, dass man entweder immer 
> gefragt wird beim einloggen oder man immer in die tmux-session kommt und 
> beim Beenden der tmuxsession auch komplett ausgeloggt wird. Also ein 
> Einloggen ohne tmux nicht nicht mehr möglich ist, es sei denn man macht 
> es so wie Christian im Originalpost und lässt sich bei jeder Session 
> fragen was man will. 

Wie wäre es, hier einen Timer einzubauen, der nach bspw. 10 Sekunden 
einfach die Shell aufruft?

Also in etwa so:

#!/bin/bash
if [ "${SSH_CONNECTION}" != "" ]
then
     if [ -n "$SSH_CONNECTION" ] && [ -z "$TMUX" ]
     then
         if tmux list-sessions >/dev/null 2>&1
         then
             count=$(tmux list-sessions | wc -l)
             echo
             echo "tmux Sessions ($count):"
             tmux list-sessions -F "#S" | nl -w2 -s': '
             base_prompt="[Enter=NEW]"
             if [ "$count" -ge "2" ]; then
                 prompt="$base_prompt q=Shell 1-$count: "
             else
                 prompt="$base_prompt q=Shell $count: "
             fi
         else
             prompt="[Enter=NEW tmux] q=Shell: "
         fi

         echo "10s timeout → Shell"
         echo -n "$prompt"

         # Einfacher read mit Timeout
         timeout=10
         input=""
         if IFS= read -t "$timeout" -r input; then
             # Eingabe: filtern
             input=$(echo "$input" | sed 's/[^0-9qQ]//g' | tr 
'[:upper:]' '[:lower:]')
         else
             # Timeout: Shell
             input="q"
         fi

         echo  # Neue Zeile

         case "$input" in
             q)
                 echo "Shell." >/dev/null
             ;;

             *[0-9]*)
                 num=$(echo "$input" | grep -o '[0-9]' | head -1)
                 [ "$num" ] || num=1
                 session=$(tmux list-sessions -F "#S" | sed -n "${num}p")
                 if [ -n "$session" ]; then
                     exec tmux attach -t "$session"
                 else
                     exec tmux new-session
                 fi
             ;;
             *)
                 exec tmux new-session
             ;;
         esac
     fi
fi




Gruß
Christian


Mehr Informationen über die Mailingliste Eisfair