Soll LocalCommand den Titel des Bildschirmfensters nur bei interaktiver Verwendung festlegen?

Soll LocalCommand den Titel des Bildschirmfensters nur bei interaktiver Verwendung festlegen?

Aufstellen

Ich führe screen auf einem lokalen Computer aus und verwende verschiedene Bildschirmfenster, um eine Verbindung zu verschiedenen Hosts herzustellen. Es wäre schön, wenn Fensternamen während des SSH-Prozesses automatisch in Hostnamen geändert würden.

Ansätze

Ich habe verschiedene Variationen der folgenden beiden Ansätze ausprobiert:

1) Verwenden LocalComandin der SSH-Konfigurationsdatei:

Host *
PermitLocalCommand yes
LocalCommand '[ "${TERM:0:6}" == "screen" ] && printf "\ek@%h\e\\"

2) Erstellen einer benutzerdefinierten Bash-Funktion:

# function to set screen name based on host and reset on exit
function ssh() {
  echo -e '\033k'@$1'\033\\'
  /usr/bin/env ssh -Y "$@"
  echo -e '\033k'local'\033\\'
}

Problem

Beide Ansätze funktionieren, scheinen aber auch Dinge wie die automatische Vervollständigung zu beeinträchtigen:

$ scp user@host:~/.s<tab>
...o^[\\\\   ...cal^[\\\\

Frage

Gibt es eine Bedingung, die (zusätzlich zur Überprüfung, ob) verwendet werden könnte, die die Ausführung (oder die Ausführung der Funktion) nur bei Verbindung mit dem Host und nicht bei Verwendung zur automatischen Vervollständigung $TERM == screenermöglichen würde ?LocalCommandssh()

verwandte Informationen