Sophie

Sophie

distrib > Mandriva > 9.1 > i586 > by-pkgid > f1098342ec4a2b28475e34123ce17201 > files > 87

howto-html-it-9.1-0.5mdk.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE>Bash Prompt HOWTO: Manipolazioni della Barra del Titolo di Xterm</TITLE>
<LINK HREF="Bash-Prompt-HOWTO-5.html" REL=next>
<LINK HREF="Bash-Prompt-HOWTO-3.html" REL=previous>
<LINK HREF="Bash-Prompt-HOWTO.html#toc4" REL=contents>
</HEAD>
<BODY>
<A HREF="Bash-Prompt-HOWTO-5.html">Avanti</A>
<A HREF="Bash-Prompt-HOWTO-3.html">Indietro</A>
<A HREF="Bash-Prompt-HOWTO.html#toc4">Indice</A>
<HR>
<H2><A NAME="s4">4. Manipolazioni della Barra del Titolo di Xterm</A></H2>

<P>Posso essere usate dele sequenze di escape non stampabili per produrre
effetti interessanti nei prompt. Per usare queste sequenze di escape,
dovete includerle fra <B>\[</B> e <B>\]</B>, dicendo a Bash di
ignorare questo materiale nel calcolare la dimensione del prompt. Se
non si includono questi delimitatori si fa in modo che il cursore appaia
nel posto sbagliato perch&eacute; la sua effettiva dimensione &egrave;
sconosciuta. Le sequenze di escape devono anche essere precedute da
<B>\033[</B> prima della versione 2 di Bash oppure da <B>\033[</B> o
<B>\e[</B> in versioni successive.
<P>
<P>Se cercate di cambiare la barra del titolo dell'Xterm con il prompt
quando siete alla consolle, produrrete spazzatura. Per evitare questo,
testate la variabile d'ambiente XTERM per sapere se il prompt si
trover&agrave; in un Xterm.
<P>
<BLOCKQUOTE><CODE>
<PRE>
function proml
{
case $TERM in
    xterm*)
        local TITLEBAR='\[\033]0;\u@\h:\w\007\]'
        ;;
    *)
        local TITLEBAR=''
        ;;
esac

PS1="${TITLEBAR}\
[\$(date +%H%M)]\
[\u@\h:\w]\
\$ "
PS2='&gt; '
PS4='+ '
}
</PRE>
</CODE></BLOCKQUOTE>
<P>
<P>Questa &egrave; una funzione che pu&ograve; essere incorporata in
~/.bashrc. Il nome della funzione potrebbe quindi essere chiamato per
eseguire la funzione. La funzione, come la stringa PS1, viene salvata
nell'ambiente. Una volta che la stringa PS1 viene impostata dalla
funzione, potete rimuovere la funzione dall'ambiente con <CODE>unset
proml</CODE>. Dal momento che il prompt non pu&ograve; cambiare da
quando sta in un Xterm a quando sta alla consolle, la variabile TERM
non viene testata ogni volta che il prompt viene generato. Ho usato i
marcatori di continuazione (i backslash) nella definizione del prompt,
per consentire di scriverlo su pi&ugrave; righe. Questo migliora la
leggibilit&agrave; rendendo pi&ugrave; facile modificarlo e fare un
debug.
<P>
<P>Lo definisco come una funzione perch&eacute; cos&igrave; &egrave;
come il pacchetto Bashprompt (discusso pi&ugrave; avanti in questo
documento) tratta i prompt: non &egrave; la sola maniera di farlo, ma
funziona bene. Via via che i prompt che utilizzate diventano
pi&ugrave; complessi, diventa sempre pi&ugrave; sconveniente digitarli
al prompt e pi&ugrave; pratico metterli in qualche sorta di file di
testo. In questo caso, per testare questo prompt, salvate quendo sopra
come un file di testo chiamato "proml". potete lavorare come segue:
<P>
<BLOCKQUOTE><CODE>
<PRE>
[giles@nikola:/bin (4.498 Mb)]$ cd     -> Andate dove volete salvare il prompt
[giles@nikola:~ (0 Mb)]$ vi proml      -> Modificate il file del prompt 
...                                    -> Inserite il testo dato sopra
[giles@nikola:~ (0 Mb)]$ source proml  -> Leggete la funzione del prompt
[giles@nikola:~ (0 Mb)]$ proml         -> Eseguite la funzione del prompt
</PRE>
</CODE></BLOCKQUOTE>
<P>
<P>Il primo passo nel creare questo prompt &egrave; di controllare se la
shell che stiamo facendo partire &egrave; in un xterm o no: se lo
&egrave;, la variabile della shell (${TITLEBAR}) viene definita. Essa
consiste delle sequenze di escape appropriate e <B>\u@\h:\w</B>,
che mettono &lt;utente&gt;@&lt;macchina&gt;:&lt;directory di lavoro&gt;
nella barra del titolo di Xterm. Questo &egrave; particolarmente utile
con Xterm minimizzati, rendendoli identificabili pi&ugrave;
rapidamente. Il resto del materiale in questo prompt dovrebbe essere
gi&agrave; noto dai precedenti prompt che abbiamo creato.
<P>
<P>Il solo inconveniente di manipolare la barra dell'Xterm in questo modo
avviene quando vi loggate in un sistema su cui non avete predisposto
il trucchetto della barra del titolo: l'Xterm continuer&agrave; a
mostrare l'informazione del precedente sistema su cui c'era il
trucco.
<P>
<HR>
<A HREF="Bash-Prompt-HOWTO-5.html">Avanti</A>
<A HREF="Bash-Prompt-HOWTO-3.html">Indietro</A>
<A HREF="Bash-Prompt-HOWTO.html#toc4">Indice</A>
</BODY>
</HTML>