2.5. Completamento automatico

Il completamento automatico è una funzione utilissima che tutte le shells moderne (inclusa la bash) possiedono. Il suo ruolo è di fare in modo che gli utenti debbano scrivere il meno possibile. Il modo migliore per illustrare la funzione di completamento automatico è fare un esempio.

2.5.1. Esempio

Immaginate che la vostra directory personale contenga un file il cui nome è file_dal_nome_troppo_lungo_per_digitarlo, e che vogliate leggerlo. Supponiamo che nella vostra directory ci sia anche un file chiamato file_text. Vi trovate nella vostra directory personale, e digitate questo comando:

$ less fi<TAB>

(ovvero digitate less fi e poi premete il tasto TAB). La shell a questo punto completerà la linea di comando per voi:)

$ less file_

e vi darà anche l'elenco delle scelte possibili (nella sua configurazione predefinita, che potreste modificare). Quindi digitate questa sequenza di caratteri:

less file_w<TAB>

e la shell completerà la vostra linea di comando in questo modo:

less file_dal_nome_troppo_lungo_per_digitarlo

A questo punto vi basterà premere Invio per confermare e leggere il file.

2.5.2. Altri metodi di completamento

Il tasto TAB non è il solo modo di attivare il completamento, anche se è il più utilizzato. In linea di massima, la parola da completare sarà il nome di un comando se è la prima parola della linea di comando (nsl<TAB> verrà espanso in nslookup), e un nome di file per le altre parole, a meno che la parola non sia preceduta da un carattere "magico" da scegliere tra ~, @ o $; in questo caso, la shell cercherà di completare la parola assumendo che sia, rispettivamente, il nome di un utente, il nome di una macchina o di una variabile di ambiente [1]. Esiste anche un carattere magico per completare il nome di un comando (!) o il nome di un file (/).

Gli altri due modi per attivare il completamento sono le sequenze Esc-<x> e Ctrl+x <x> (Esc è il tasto Escape, e Ctrl+x significa Control+<x>), dove <x> è uno dei caratteri magici menzionati in precedenza. Esc-<x> cercherà di eseguire il completamento in modo univoco, altrimenti completerà la parola con la sequenza di caratteri più lunga tra quelle possibili. Un beep indicherà che la scelta non è univoca, o semplicemente che non esiste una scelta corrispondente. La sequenza Ctrl+x <x> visualizza la lista delle possibili scelte senza tentare il completamento. Premere il tasto TAB, quindi, ha lo stesso effetto che premere in successione Esc-<x> e Ctrl+x <x>, dove il carattere magico dipende dal contesto.

Come conseguenza, un sistema per visualizzare tutte le variabili di ambiente definite è digitare Ctrl+x $ su una linea vuota. Un altro esempio: se volete visualizzare la pagina di manuale del comando nslookup, potete digitare man nsl seguito da Esc-!, e la shell completerà automaticamente la linea di comando in man nslookup.

Note

[1]

Ricordate: UNIX fa differenza fra caratteri maiuscoli e minuscoli. La variabile di ambiente HOME e home non sono la stessa variabile.


Tux on Star from MandrakeSoft Linux è un marchio registrato di Linus Torvalds. Tutti gli altri marchi e copyright appartengono ai rispettivi proprietari.
Se non diversamente specificato, i diritti di tutto il contenuto di queste pagine e di tutte le immagini sono proprietà di MandrakeSoft S.A. e MandrakeSoft Inc. 2002.
http://www.mandrakelinux.com/