47
Struttura modulare
4.5
Una possibile alternativa: zsh
Una shell particolarmente interessante sviluppata in tempi relativamente recenti `e zsh. Alcune delle sue caratteristiche pi` u impressionanti sono la sua ampliabilit`a attraverso una struttura modulare e la possibili`a di modificare a piacere il comportamento dell’espansione della linea di comando, arrivando a completare persino le opzioni dei comandi!
Espansione della linea di comando
4.5.1
L’espansione della linea di comanda viene controllata con il comando compctl. La sintassi del comando `e sostanzialmente questa:
compctl [OPZIONI] COMANDO [ .. COMANDO ]
COMANDO `e un comando al quale applicare i criteri di espansione specificati con le OPZIONI. Vediamone alcune: Opzione -k array -K funzione -g globstring -s string
Significato Specifica un elenco di testi tra i quali scegliere per la completazione Specifica di usare il risultato della funzione funzione per completare il comando Specifica una stringa da espandere con i criteri di globbing della shell sui file presenti nella directory corrente Specifica una stringa semplice di testo con la quale completare il comando
Ad esempio: $ compctl -s "-9" gzip $
imposta come espansione automatica la stinga -9 al comando gzip. Ora, dopo aver TAB digitato gzip premendo una volta il tasto si otterr`a automaticamente la combinazione -9. Proviamo invece: $ compctl -k "(xzf tzf zf tf)" tar $
Dopo aver scritto tar una pressione del TAB ci dar`a l’elenco completo di tutte queste quattro possibili espansioni. Alla seconda pressione verr`a utilizzata la prima, alla terza la seconda e cos`ı via.
Struttura modulare
4.5.2
Un’altra eccitante 6 caratteristica di zsh `e la struttura modulare con la quale `e possibile espanderne le funzionalit`a. 6
Come dici? Mi perverto con poco?