# L'interfaccia a riga di comando

## Gretl sul terminale

Il pacchetto gretl include il programma a riga di comando gretlcli. Su Linux è possibile esegurlo in un terminale testuale o in un xterm (o simili), mentre su MS Windows può essere eseguito in una finestra di terminale (quella che di solito viene chiamata prompt di MS-DOS). gretlcli ha un file di aiuto, a cui si accede inserendo il comando help al prompt. Inoltre, può essere usato in modalità batch, inviando i risultati direttamente a un file (si veda ).

Se gretlcli è linkato alla libreria readline (ciò avviene automaticamente nella versione MS Windows, si veda anche l'), è possibile richiamare e modificare i comandi già eseguiti, inoltre è disponibile il completamento automatico dei comandi. Per muoversi nella lista dei comandi già eseguiti è possibile usare i tasti Freccia Su/Giù, mentre per muoversi sulla riga di comando è possibile usare i tasti Freccia a destra/sinistra e le scorciatoie in stile Emacs In realtà quelli mostrati sono i valori predefiniti, ma possono essere modificati: si veda il manuale di readline. . Le scorciatoie più usate sono:

Scorciatoia | Effetto
--- | ---
`Ctrl-a` | Va all'inizio della riga
`Ctrl-e` | Va alla fine della riga
`Ctrl-d` | Cancella il carattere a destra

dove `Ctrl-a` significa premere il tasto `a` mentre si tiene premuto il tasto `Ctrl`. Quindi se si vuole correggere qualcosa all'inizio della riga di comando, non occorre usare il tasto di cancellazione all'indietro su tutta la riga, basta saltare all'inizio della riga e aggiungere o cancellare i caratteri desiderati.

Inserendo le prime lettere del nome di un comando e premendo il tasto Tab, readline cercherà di completare automaticamente il nome del comando. Se esiste un solo modo di completare le lettere inserite, verrà inserito il comando corrispondente, altrimenti premendo Tab una seconda volta verrà visualizzata una lista delle alternative possibili.

## Differenze con ESL di Ramanathan

gretlcli ha ereditato la sintassi di base dei comandi dal programma ESL di Ramu Ramanathan e gli script di comandi sviluppati per ESL dovrebbero essere utilizzabili con con pochi cambiamenti: le uniche cose a cui stare attenti sono i comandi multilinea e il comando `freq`.

- In ESL viene usato un punto e virgola come terminatore per molti comandi. In gretlcli ho deciso di rimuovere questa caratteristica: il carattere punto e virgola è semplicemente ignorato, a parte in alcuni casi speciali in cui ha un significato particolare: come separatore per due liste nei comandi `ar` e `tsls`, e come segnaposto per l'osservazione iniziale o finale immutata nel comando `smpl`. In ESL il punto e virgola dà la possibilità di spezzare le righe di comando su più righe dello schermo; in gretlcli si ottiene questo risultato inserendo una barra rovesciata `\` alla fine della riga da spezzare.

- Per quanto riguarda `freq`, al momento non è possibile specificare intervalli personalizzati, come avviene in ESL. Inoltre, ai risultati del comando è stato aggiunto un test chi-quadro di normalità.

Si noti anche che i comandi per usare la modalità batch sono stati semplificati. In ESL si usava, ad esempio:

            esl -b filedati < fileinput > fileoutput

mentre in gretlcli si usa:

    	gretlcli -b fileinput > fileoutput

Il file di input viene trattato come un argomento del programma, mentre il file di dati su cui operare va indicato all'interno del file di input, usando il comando `open datafile` o il commento speciale `(* !` filedati `*)`.