Workstation online OnWorks Linux e Windows

Logo

Hosting online gratuito per workstation

<Precedenti | Contenuti | Succ.>

Spostare il cursore

I codici di escape possono essere utilizzati per posizionare il cursore. Questo è comunemente usato per fornire un orologio o qualche altro tipo di informazione in una posizione diversa sullo schermo, come un angolo superiore ogni volta che viene disegnato il prompt. Ecco un elenco dei codici di escape che posizionano il cursore:


Tabella 13-4: Sequenze di fuga del movimento del cursore

Escape Code Action

\033[l;cH Sposta il cursore sulla riga l e colonna c


Immagine

\033[nA Sposta il cursore in alto n Linee


Immagine

\033[nB Sposta il cursore in basso n Linee


Immagine

\033[nC Sposta il cursore in avanti n caratteri


Immagine

\033[nD Sposta il cursore indietro n caratteri


Immagine

\033[2J Cancella lo schermo e sposta il cursore nell'angolo in alto a sinistra (riga 0, colonna 0)


Immagine

\033[K Cancella dalla posizione del cursore alla fine della riga corrente


Immagine

\033[s Memorizza la posizione corrente del cursore


Immagine

\033[u Richiama la posizione del cursore memorizzata


Immagine


Usando i codici sopra, costruiremo un prompt che disegna una barra rossa nella parte superiore dello schermo contenente un orologio (reso in testo giallo) ogni volta che viene visualizzato il prompt. Il codice per il prompt è questa stringa dall'aspetto formidabile:



PS1="\[\033[s\033[0;0H\033[0;41m\033[K\033[1;33m\t\033[0m\033[u\]

<\u@\h \W>\$ "

PS1="\[\033[s\033[0;0H\033[0;41m\033[K\033[1;33m\t\033[0m\033[u\]

<\u@\h \W>\$ "


Diamo un'occhiata a ciascuna parte della stringa per vedere cosa fa:

Spostare il cursore


Tabella 13-5: Ripartizione della stringa di prompt complessa


Azione in sequenza

Azione in sequenza

\[ Inizia una sequenza di caratteri non stampabili. Lo scopo di ciò è consentire a bash di calcolare correttamente la dimensione del prompt visibile. Senza un calcolo accurato, le funzioni di modifica della riga di comando non possono posizionare correttamente il cursore.


Immagine

\033[s Memorizza la posizione del cursore. Ciò è necessario per tornare alla posizione del prompt dopo che la barra e l'orologio sono stati disegnati nella parte superiore dello schermo. Tieni presente che alcuni emulatori di terminale non riconoscono questo codice.


Immagine

\033[0;0H Sposta il cursore nell'angolo in alto a sinistra, che è la riga 0, colonna 0.


Immagine

\033[0;41m Imposta il colore di sfondo su rosso.


Immagine

\033[k Cancella dalla posizione corrente del cursore (l'angolo in alto a sinistra) alla fine della riga. Poiché il colore di sfondo ora è rosso, la linea viene cancellata su quel colore creando la nostra barra. Notare che l'azzeramento fino alla fine della riga non cambia la posizione del cursore, che rimane nell'angolo in alto a sinistra.


Immagine

\033[1;33m Imposta il colore del testo su giallo.


Immagine

\t Visualizza l'ora corrente. Sebbene questo sia un elemento "stampante", lo includiamo comunque nella parte non stampabile del prompt, poiché non vogliamo che bash includa l'orologio nel calcolo della dimensione reale del prompt visualizzato.


Immagine

\033[0m Disattiva il colore. Ciò influisce sia sul testo che sullo sfondo.


Immagine

\033[u Ripristina la posizione del cursore salvata in precedenza.


Immagine

\] Termina la sequenza di caratteri non stampabili.


Immagine

<\u@\h \W>\$ Stringa di richiesta.


Immagine


Il miglior sistema operativo cloud computing su OnWorks: