Come faccio a impedire a GNU Screen di risolvere il mio prompt?

Quando esegui lo schermo cambia la mia richiesta. Come prevenire questo comportmento? Per esempio:

$ echo $PS1 \[\e]0;\h:Prod\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n\$ $ screen $ echo $PS1 [\u@\h \W]\$ 

È interessante notare che non lo fa su altre macchine. La macchina in questione è Redhat 4 update 4, con versione dello schermo 4.00.02 (FAU) 5-Dec-03.

  • Causa di errore: tabella o nome del database non valido (vecchio?) 'Perso + trovato'
  • Differenze tra tunnel SSH e OpenVPN
  • linux command line: trova il nome host host di un host
  • Chroot sembra mancare alcuni progs / libs. Cosa serve per get il comportmento predefinito della row di command?
  • Collegarsi a una macchina in un vpn tramite ssh con dynamic dns
  • Come faccio a scorrere la cache DNS sui computer Win, Mac, Linux?
  • OpenVPN e inoltro della port
  • / var / log è andato, quali sono le possibili ragioni?
  • Come rimuovere semplicemente tutto da una directory su Linux
  • QEMU-KVM virtualizzazione Linux sulla row di command
  • Come posso modificare ricorsivamente il caso di file e cartelle sotto bash?
  • Come tagliare l'estensione dal path con gli strumenti di base UNIX
  • 4 Solutions collect form web for “Come faccio a impedire a GNU Screen di risolvere il mio prompt?”

    Prova ad aggiungere (supponendo che non sia già presente) al file .screenrc:

     shell - $ SHELL
    

    Questo ti darà una shell di login quando si inizializza una session di schermo o crea un altro terminal da una.

    Molte distribuzioni controllano il tipo di terminal prima di impostare la richiesta. Ubuntu, ad esempio, contiene questo piccolo gioiello nel default .bashrc:

     # impostare un prompt di fantasia (non colore, a less che non sappiamo che "vogliamo" il colore)
     caso "$ TERM" in
         xterm-color) color_prompt = yes ;;
     esac
    

    Dal momento che lo schermo utilizza la propria variabile TERM ("schermo"), bash pensa che non sia in grado di visualizzare un prompt di colors fantasiosi in modo che sia di default a quello più semplice. Lo schermo è, ovviamente, pienamente in grado di rispondere in maniera complessa come un normale terminal.

    Quindi, per ignorare questo comportmento, è sufficiente impostare le opzioni PS1 preferite alla fine del file ~/.bashrc . Oppure, se ti senti avventurosi, trova il test che controlla il valore della variabile TERM e lo modifica per accettare "schermo" oltre a "xterm-color".

    Forse questa è una variabile personalizzata impostata nel file ~ / .screenrc?

    Aveva lo stesso problema (non più prompt personalizzato nella schermata) su una macchina con SHELL -$SHELL e non setenv PS1 in screenrc e nessun test speciale per il terminal (muto) in bashrc.

    Impostare l'utilizzo di $ TERM:

     $ echo $TERM urxvt-unicode-256color 

    in screenrc ha ottenuto il mio prompt personalizzato mentre sotto Screen:

     - #term xterm-256color + term urxvt-unicode-256color 

    PS: un altro account non ha avuto bisogno di questo, ma test bashrc per dircolors e un terminal moderno in questo modo 1 :

     if [[ $'\n'${match_lhs} == *$'\n'"TERM "${safe_term}* ]] ; then PS1=<my fancy prompt> 

    Credo che questo funzioni anche:

     if [ "$TERM" != "dumb" ]; then PS1=<my fancy prompt> 
    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.