Prima riga sovrascritta in Bash

Se avete problemi con l'installazione e la configurazione di Slackware postate qui. Non usate questo forum per argomenti generali... per quelli usate Gnu/Linux in genere.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware, se l'argomento è generale usate il forum Gnu/Linux in genere.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
hashbang
Packager
Packager
Messaggi: 2032
Iscritto il: ven 4 giu 2010, 10:27

Re: Prima riga sovrascritta in Bash

Messaggio da hashbang »

sardylan ha scritto:Non so come si comporta con altre shell (chiaramente scritto nel modo equivalente),
Anche con zsh la struttura della sequenza di escape, che usavo su bash, funzionava. Il problema era che questo problema si verificava pure lì.
sardylan ha scritto:ma ho voluto un po' a sistemare il tutto...
Attualmente ho questo:

Codice: Seleziona tutto

sardylan@achille.thehellnet.org [ ~ ]$ echo $PS1
\[\e[1;32m\]\u\[\e[0m\]@\[\e[1;37m\]\H\[\e[0m\] \[\e[1;36m\][\[\e[0m\] \w \[\e[1;36m\]]\[\e[0m\]$ 
Viene impostato tutto tramite variabili.
È questo che non riesco a capire. Perchè se metto le sequenze in modo diretto in PS1 mi da questo problema mentre se setto delle variabili, che ne contiene i valori, e le metto in PS1 tutto funziona? Non dovrebbe essere la stessa cosa?
Pensa che la soluzione (ovvero la sostituzione dei parametri con delle variabili in PS1) l'ho trovata per caso usando la shell della livecd di Linux From Scratch (infatti il mio .bashrc riproduce esattamente la stesso prompt, eccetto la directory che ho colorato di blu e messa in grassetto col resto). Notai infatti che li si usava un prompt che faceva uso di sequenze di escape, che erano messe in variabili.
sardylan ha scritto:Un problema simile mi si verificava con l'escape finale. Alla fine, dopo varie prove ho trovato che 0m è quello giusto.
Si però se io metto il solo \e[0m, mi toglie la colorazione ma non il grassetto (che non uso nel testo della shell), o sbaglio?

Avatar utente
deer
Linux 1.x
Linux 1.x
Messaggi: 122
Iscritto il: gio 16 ago 2007, 12:00
Nome Cognome: Maurizio Brunelli
Slackware: 13.1
Kernel: 2.6.33.4
Desktop: KDE4-FluxboxWM
Distribuzione: Debian-ArchBang
Località: rieti
Contatta:

Re: Prima riga sovrascritta in Bash

Messaggio da deer »

Avevo anche io il problema della sovrapposizione sulla Arch, ed ho risolto proprio grazie al wiki linkato, inserendo nel mio .bashrc quanto riportato sul wiki apportando modifiche per personalizzarlo. Su Slackware ho inserito gli stessi valori sia nel /home/.bashrc che in /root/.bashrc (li ho dovuti creare tutti e due).
questo è il .bashrc

Codice: Seleziona tutto

#PS1='[\u@\h \W]\$ '
#PS1="\e[01;31m??[\e[01;35m\u\e[01;31m]??[\e[00;37m${HOSTNAME%%.*}\e[01;32m]:\w$\e[01;31m\n\e[01;31m???\e[01;36m>>\e[0m]"
PS1='[\[\e[0;32m\]\u\[\e[m\] \[\e[1;31m${HOSTNAME%%.*}]\]\w\[\e[m\]\[\e[1;32m\]\$ \[\e[m\]\[\e[1;32m\] ' 
alias ls='ls --color=auto'

nel /root/.bashrc ho inserito solo la riga relativa al secondo PS1, quello decommentato.
Con questo risultato su tutti e 4 i terminali.

Codice: Seleziona tutto

[deer localhost]~$  su
Password: 
[root localhost]/home/deer#  
Vedi se può esserti utile.

Rispondi