Keywords: guide

Next: Il punto interrogativo Up: Metacaratteri Previous: Metacaratteri

## Cosa succede realmente?

Buona domanda. In realtà ci sono due caratteri speciali che vengono intercettati dalla shell `bash` . Il carattere ```*`'', un asterisco, dice ``sostituisci questa parola con tutti i file che verificano questa specifica''. In questo modo, il comando `cp data* `~`/backup`, come nell'esempio precedente, viene cambiato in `cp data-new data1 data2 data5 `~`/backup` prima di venire eseguito. Per vedere come funziona introduciamo un nuovo comando, `echo` . `echo` è un comando estremamente semplice; rimanda sullo schermo o stampa ogni parametro. Cioè:
71#71
Come potete vedere, la shell espande il metacarattere e passa tutti i file al programma che volete sia eseguito. Questo solleva una domanda interessante: cosa succede se non ci sono file che incontrano le specifiche del metacarattere? Provate `echo /rc/fr*og` e guardate cosa succede...`bash` passa testualmente la stringa con il metacarattere al programma. Bisogna dire anche che altre shell, come `tcsh` , invece di passare testualmente il metacarattere, rispondono `No match`. Ecco lo stesso comando sotto `tcsh`:
72#72
L'ultima cosa che chiederete è come fare se volete che sullo schermo compaia `data*`, al posto della lista dei nomi dei file? Beh, sia sotto `bash` che `tcsh`, basta racchiudere la stringa tra virgolette:

73#73

oppure

74#74

Next: Il punto interrogativo Up: Metacaratteri Previous: Metacaratteri