Next: Il punto interrogativo
Up: Metacaratteri
Previous: Metacaratteri
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
Eugenia Franzoni
1998-09-29