Prima riga sovrascritta in Bash
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.
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.
Prima riga sovrascritta in Bash
Salve a tutti,
ieri ho modificato il file .bashrc per attivare l'evidenziazione del nome utente e dell'hostname. Il problema è che da quando ho modificato il .bashrc, ogni volta che apro un terminale (anche le console di sistema) e inizio a scrivere del testo, esso sovrascrive la stessa riga non appena si arriva alla metà dello schermo (in proporzione alla grandezza del terminale, in caso di xterm o sakura è la metà della finestra). Inoltre se c'era già del testo in precedenza e provo a cancellare quello che scrivo al momento, noto che esso cancella ciò che era stato precedentemente scritto. Se disattivo il .bashrc, questo problema non si verifica.
Mi sono documentato su Google, ma non ho trovato nulla a riguardo.
Avete qualche consiglio da dare?
ieri ho modificato il file .bashrc per attivare l'evidenziazione del nome utente e dell'hostname. Il problema è che da quando ho modificato il .bashrc, ogni volta che apro un terminale (anche le console di sistema) e inizio a scrivere del testo, esso sovrascrive la stessa riga non appena si arriva alla metà dello schermo (in proporzione alla grandezza del terminale, in caso di xterm o sakura è la metà della finestra). Inoltre se c'era già del testo in precedenza e provo a cancellare quello che scrivo al momento, noto che esso cancella ciò che era stato precedentemente scritto. Se disattivo il .bashrc, questo problema non si verifica.
Mi sono documentato su Google, ma non ho trovato nulla a riguardo.
Avete qualche consiglio da dare?
- 414N
- Iper Master
- Messaggi: 2922
- Iscritto il: mer 13 feb 2008, 16:19
- Slackware: 15.0
- Kernel: 5.15.19
- Desktop: KDE5
- Località: Bulagna
- Contatta:
Re: Prima riga sovrascritta in Bash
Senza informazioni specifiche è un po' dura...
Quale modifica hai fatto, di preciso? Hai modificato la variabile d'ambiente PS1?
Quale modifica hai fatto, di preciso? Hai modificato la variabile d'ambiente PS1?
Re: Prima riga sovrascritta in Bash
Hai ragione.414N ha scritto:Senza informazioni specifiche è un po' dura...
Quale modifica hai fatto, di preciso? Hai modificato la variabile d'ambiente PS1?
Ecco il .bashrc
Codice: Seleziona tutto
$ cat .bashrc
# Check for an interactive session
[ -z "$PS1" ] && return
alias ls='ls -al --color=always'
alias grep='grep --color=always'
alias more='more -d'
PS1='\e[1;32m\u\e[1;33m@\e[1;34m\h\e[0m\e[1;33m:\w\e[1;32m$\e[0;0m '
- joseph
- Linux 2.x
- Messaggi: 206
- Iscritto il: lun 14 giu 2010, 23:50
- Slackware: 15.0
- Kernel: 5.15.27
- Desktop: xfce
- Località: Salerno
Re: Prima riga sovrascritta in Bash
Bahh il bashrc sembra a posto mi verrebbe da pensare di fare due prove.
Prima provare senza il bashrc e vedere se si presenta il problema,
se esso non si verifica proverei a sistemare meglio (senza i vari colori) la variabile PS1
Facci sapere
Prima provare senza il bashrc e vedere se si presenta il problema,
se esso non si verifica proverei a sistemare meglio (senza i vari colori) la variabile PS1
Facci sapere
Re: Prima riga sovrascritta in Bash
L'avevo già dettojoseph ha scritto:Bahh il bashrc sembra a posto mi verrebbe da pensare di fare due prove.
Prima provare senza il bashrc e vedere se si presenta il problema,
se esso non si verifica proverei a sistemare meglio (senza i vari colori) la variabile PS1
Facci sapere
Senza il .bashrc il problema non si presenta.
-
- Iper Master
- Messaggi: 3174
- Iscritto il: lun 3 set 2007, 21:20
- Nome Cognome: Mario Vanoni
- Slackware: 12.2
- Kernel: 3.0.4 statico
- Desktop: fluxbox/seamonkey
- Località: Cuasso al Monte (VA)
Re: Prima riga sovrascritta in Bash
IMVHO manca un export PS1=...atomix600 ha scritto:Hai ragione.414N ha scritto:Senza informazioni specifiche è un po' dura...
Quale modifica hai fatto, di preciso? Hai modificato la variabile d'ambiente PS1?
Ecco il .bashrcCodice: Seleziona tutto
$ cat .bashrc # Check for an interactive session [ -z "$PS1" ] && return alias ls='ls -al --color=always' alias grep='grep --color=always' alias more='more -d' PS1='\e[1;32m\u\e[1;33m@\e[1;34m\h\e[0m\e[1;33m:\w\e[1;32m$\e[0;0m '
Re: Prima riga sovrascritta in Bash
Non va. Ho provato il suggerimento di Mario, ma il problema non si risolve.
- 414N
- Iper Master
- Messaggi: 2922
- Iscritto il: mer 13 feb 2008, 16:19
- Slackware: 15.0
- Kernel: 5.15.19
- Desktop: KDE5
- Località: Bulagna
- Contatta:
Re: Prima riga sovrascritta in Bash
Forse hai sbagliato il codice finale. Invece di 0;0m, mettici solo 0m.atomix600 ha scritto:Codice: Seleziona tutto
PS1='\e[1;32m\u\e[1;33m@\e[1;34m\h\e[0m\e[1;33m:\w\e[1;32m$\e[0;0m '
A cosa serve poi la sequenza \e[0m\e[1;33m? Imposti al colore di default per poi cambiarlo subito in giallo?
Re: Prima riga sovrascritta in Bash
Il comando \e[0;0m mi serve per annullare il colore e il grassetto. Se tolgo il primo zero, l'intero valore del terminale sarà in grassetto.414N ha scritto:Forse hai sbagliato il codice finale. Invece di 0;0m, mettici solo 0m.
Quì hai ragione. L'ho tolta.414N ha scritto:A cosa serve poi la sequenza \e[0m\e[1;33m? Imposti al colore di default per poi cambiarlo subito in giallo?
Comunque ho notato che più riduco il bashrc, più il limite di sovra scrittura diminuisce. Che sia la variabile PS1 troppo lunga?
Re: Prima riga sovrascritta in Bash
Salve a tutti, riesumo questo vecchio problema perchè ho trovato un palliativo "assurdo" al problema.
Praticamente, se metto le sequenze di escape in delle variabili che poi andrò a richiamare in PS1, questo difetto sparisce.
Lascio comunque il topic aperto, nel caso in cui qualcuno avesse delucidazioni in merito.
EDIT: Posto il bashrc per mostrare meglio il palliativo:
Praticamente, se metto le sequenze di escape in delle variabili che poi andrò a richiamare in PS1, questo difetto sparisce.
Lascio comunque il topic aperto, nel caso in cui qualcuno avesse delucidazioni in merito.
EDIT: Posto il bashrc per mostrare meglio il palliativo:
Codice: Seleziona tutto
$ cat .bashrc
BLUE="\[\e[1;34m\]"
NORMAL="\[\e[0;0m\]"
if [ $(whoami) = root ]; then
RED="\[\e[1;31m\]"
USER=$RED
else
GREEN="\[\e[1;32m\]"
USER=$GREEN
fi
PS1="$USER\u [ $BLUE\w $USER]$ $NORMAL"
- Paoletta
- Staff
- Messaggi: 3975
- Iscritto il: lun 25 apr 2005, 0:00
- Slackware: 14.2 - 64 bit
- Desktop: fluxbox
- Località: Varese
Re: Prima riga sovrascritta in Bash
la mia e' inizializzata in questo modo:
magari puo' tornatrti utile...tra l'altro il problema in questione viene dato anche in runlevel 3 (quindi non e' un problema di emulatori di terminali)
Codice: Seleziona tutto
\[\033[01;32m\]\u\[\033[01;31m\]@\[\033[01;32m\]\h \[\033[01;31m\]\w \$ \[\033[0;33m\]
Re: Prima riga sovrascritta in Bash
Ma a questo punto non penso sia neanche problema di Bash, in quanto lo stesso "difetto" l'ho trovato in zsh (che ho da poco sostituito a bash come shell di default).Paoletta ha scritto:la mia e' inizializzata in questo modo:magari puo' tornatrti utile...tra l'altro il problema in questione viene dato anche in runlevel 3 (quindi non e' un problema di emulatori di terminali)Codice: Seleziona tutto
\[\033[01;32m\]\u\[\033[01;31m\]@\[\033[01;32m\]\h \[\033[01;31m\]\w \$ \[\033[0;33m\]
Lì la soluzione è stata addirittura più assurda, in quanto il valore della variabile PS1 risulta essere addirittura più lungo del valore (compreso di sequenze di escape) che avevo messo io.
Io avevo settato la variabile PS1 esattamente allo stesso modo di come settavo Bash, e infatti i colori sulla shell venivano caricati. Il problema era che anche lì si verificava il fastidio presente.
Su zsh ho risolto con:
Codice: Seleziona tutto
$ cat .zshrc | grep PS1
export PS1="$(print '%B%{\e[31m%}%n%{\e[0m%}%b') $(print '%B%{\e[32m%}%~ >%{\e[0m%}%b') "
- targzeta
- Iper Master
- Messaggi: 6631
- Iscritto il: gio 3 nov 2005, 14:05
- Nome Cognome: Emanuele Tomasi
- Slackware: 64-current
- Kernel: latest stable
- Desktop: IceWM
- Località: Carpignano Sal. (LE) <-> Pisa
Re: Prima riga sovrascritta in Bash
Scusa, ma se non setti la variabile PS1 tutto funziona? Perché se è così allora è evidente che il problema è lì, sinceramente l'uso del \e non mi torna, io ho sempre usato il carattere di escape usato anche da Paoletta.
Emanuele
Emanuele
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
- sardylan
- Linux 3.x
- Messaggi: 993
- Iscritto il: mar 24 apr 2007, 9:21
- Nome Cognome: Luca Cireddu
- Slackware: current 64bits
- Kernel: 3.16
- Desktop: KDE 4.14
- Distribuzione: Debian - CLFS
- Località: Cagliari
- Contatta:
Re: Prima riga sovrascritta in Bash
Non so come si comporta con altre shell (chiaramente scritto nel modo equivalente), ma ho voluto un po' a sistemare il tutto...
Attualmente ho questo:
Viene impostato tutto tramite variabili.
Un problema simile mi si verificava con l'escape finale. Alla fine, dopo varie prove ho trovato che 0m è quello giusto.
Ho anche un export di PS1 e di TERM:
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\]$
Un problema simile mi si verificava con l'escape finale. Alla fine, dopo varie prove ho trovato che 0m è quello giusto.
Ho anche un export di PS1 e di TERM:
Codice: Seleziona tutto
if [ -z "${TERM}" ]; then
TERM="linux"
fi
export PS1
export TERM
Re: Prima riga sovrascritta in Bash
Praticamente si. Infatti se evito di usare un .bashrc per caricare la configurazione della bash, tutto funziona perfettamente.spina ha scritto:Scusa, ma se non setti la variabile PS1 tutto funziona?
Guarda io le sequenze di escape le ho applicate seguendo il wiki ufficiale di ArchLinux.spina ha scritto:Perché se è così allora è evidente che il problema è lì, sinceramente l'uso del \e non mi torna, io ho sempre usato il carattere di escape usato anche da Paoletta.
Emanuele
Ti posto il link