PDA

Visualizza la versione completa : Variabile d'ambiente PS1


namek
14-11-2005, 17:29
Ciao, sto facendo alcune prove per cominciare a conoscere Linux e ho incontrato questo problema: ho cercato di visualizzare il contenuto della variabile PS1, facendo $PS1, ma mi ha dato che la variabile contiene $(ppwd , non mi pare, se ho capito bene, che sia il risultato atteso, dovrebbe dare quello che si vede stampato come prompt, cioè utente@host:directory.
Ho provato a dare il comando PS1=\u@\h:\w\$, invece di dare il mio nome utente, il nome dell'host e la cartella personale, ha dato:
u@h:w$, cioè ha stampato le lettere senza \. Che cosa sto sbagliando?
La Shell è la Bash.
Grazie :ciauz:

maiosyet_2
14-11-2005, 18:09
Per visualizzare il contenuto di $PS1 devi dare

echo $PS1 (e non semplicemente $PS1)

Esempio:

maiosyet@alcibiade:~$ echo $PS1
\u@\h:\w\$

\u username
@
\h hostname
:
\w path locale
$ (simbolo di user)

Per impostare valori permanenti a PS1 basta che li setti in ~/.bashrc

namek
14-11-2005, 21:57
Dunque con echo $PS1 mi dà:
$(ppwd \l)\u@\h:\w>
non è un pò strano il primo pezzo fino alla parentesi? Che cosa sta a significare?
Non so se ho capito bene l'istruzione che mi hai consigliato per cambiare il valore, io ho fatto:
PS1=~/.bashrc
e quello che mi dà facendo echo PS1 è:
/home/nomeUtente/.bashrc
Va bene? e che cosa sarebbe stato fatto con quel .bashrc?

Grazie mille :ciauz:

U-bahn
15-11-2005, 16:27
Originariamente inviato da namek
Ho provato a dare il comando PS1=\u@\h:\w\$, invece di dare il mio nome utente,
il nome dell'host e la cartella personale, ha dato:
u@h:w$, cioè ha stampato le lettere senza \. Che cosa sto sbagliando?
mancano gli apici (PS1='\u@\h:\w\$')
Dunque con echo $PS1 mi dà:
$(ppwd \l)\u@\h:\w>
non è un pò strano il primo pezzo fino alla parentesi? $(pwd), non $(ppwd..)
sì, è un po' strano, visto che (dopo aver corretto) ti esce fuori qualcosa del tipo:
/path/attualenomeutente@host:/path/attuale
Che cosa sta a significare?$man pwd

io ho fatto:
PS1=~/.bashrc
e quello che mi dà facendo echo PS1 è:
/home/nomeUtente/.bashrc
Va bene? e che cosa sarebbe stato fatto con quel .bashrc?non ha senso, hai dato a PS1 il valore $HOME/.bashrc....risultato
/home/nomeutente/.bashrca PS1 devi dare valori tipo questi:
if [ $EUID -eq 0 ] ; then
export PS1='[$(whoami)]@[\h]:\w\$' ($(whoami) è un po' inutile...)
else
export PS1='\u@\h:\w\$'
fiaffinchè abbia un minimo di senso

:ciauz:

namek
15-11-2005, 21:55
Grazie, U-bahn, molto chiaro :)
Unica cosa, ora avendo fatto PS1="\u@\h:\w" funziona, ma prima che non lo facevo con le "" dava proprio ppwd.... non pwd, cosa che ci aspetteremmo come infatti sottolinei tu. ppwd nel man, ovviamente non c'è. Comunque il problema mio è risolto, grazie di nuovo.
:ciauz:

Loading