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.

  • È male per modificare manualmente il file cron?
  • nohup più comandi sequenziali
  • Samba4 condivide
  • Accesso limitato SSH per il recupero del log
  • Il modo migliore per distruggere tutti i dati su un server linux?
  • Quali distribuzioni Linux supportno IPv6?
  • Per Intel Core 2 Duo, dovrei aggiornare il mio x32 con x64 Linux?
  • ntp indirizzo multicast
  • Punto di assembly cdrom CentOS / Redhat kickstart script
  • Come distriggersre il trasmettitore o il ricevitore NIC in Linux
  • Come rimuovere un certo simbolo per uno script bash
  • Configurazione SSH Speciale
  • 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.