Soluzione 1:
(Rubato da "Come posso sapere se sono su uno schermo?" su StackOverflow e creato dall'utente jho. P.S. Non puoi votare per un duplicato sui siti StackExchange.)
Seleziona $STY
. Se è nullo, sei su un terminale "reale". Se contiene qualcosa, è il nome della schermata in cui ti trovi.
Se non sei sullo schermo:
[email protected] ~ $ echo $STY
[email protected] ~ $
Se sei sullo schermo:
[email protected] ~ $ echo $STY
2026.pts-0.ip-10-0-1-71
Se usi tmux invece di screen, seleziona anche $TMUX
. Per aggiungere questo al tuo prompt, aggiungi quanto segue al tuo ~/.bashrc
:
if [ -n "$STY" ]; then export PS1="(screen) $PS1"; fi
if [ -n "$TMUX" ]; then export PS1="(tmux) $PS1"; fi
Soluzione 2:
Cerca $STY
che fornisce dettagli che screen
utilizza per comunicare con se stesso; $WINDOW
sarà quindi l'attuale screen
numero finestra.
Soluzione 3:
Il semplice controllo che uso di solito è semplicemente premere Ctrl -a :
-
Se il cursore salta all'inizio della riga , non sono dentro una sessione dello schermo.
-
Se non succede nulla , so che sono dentro una sessione dello schermo e che ho appena utilizzato il tasto di controllo dello schermo. Poi premo a (salta all'inizio della riga), w (mostra le finestre dello schermo corrente) o esegui qualche altro comando "innocuo" sullo schermo per tornare al prompt dei comandi.
(Naturalmente, questo funziona solo se stai attualmente eseguendo bash o qualche altro software che "salta all'inizio della riga" o fa qualcosa di altrettanto innocuo quando premi Ctrl-a.)
Soluzione 4:
Bene, la maggior parte del tempo (in assenza dei tentativi di qualcuno di rovinare le cose) il tuo TERM
sarà impostato su screen
(o almeno menzionare screen
da qualche parte).
La semplice soluzione al problema è semplicemente eseguire lo schermo ovunque. Non uscire di casa senza, dico.
Soluzione 5:
Lo tengo nel mio .bashrc
:
PS1='[\[email protected]\h \W'
if [ "$WINDOW" ]; then PS1="$PS1 ($WINDOW)"; fi
PS1="$PS1]$"
Non è infallibile, ma ogni volta che creo una nuova schermata, inserisce il numero della finestra nel prompt. Se non eseguo screen
, non c'è nessun numero.