Workstation online OnWorks Linux e Windows

Logo

Hosting online gratuito per workstation

<Precedenti | Contenuti | Succ.>

Espansione

Ogni volta che digitiamo un comando e premiamo il tasto Invio, bash esegue diversi processi sul testo prima di eseguire il nostro comando. Abbiamo visto un paio di casi in cui una semplice sequenza di caratteri, ad esempio "*", può avere molto significato per la shell. Il processo che fa sì che ciò accada si chiama espansione. Con l'espansione, entriamo in qualcosa ed è espanso in qualcos'altro prima che il guscio agisca su di esso. Per dimostrare cosa intendiamo con questo, diamo un'occhiata al eco comando. eco è una shell incorporata che esegue un compito molto semplice. Stampa i suoi argomenti di testo sullo standard output:



[io@linuxbox~]$ eco questo è un test

questa è una prova

[io@linuxbox~]$ eco questo è un test

questa è una prova


È abbastanza semplice. Qualsiasi argomento passato a eco viene visualizzato. Proviamo con un altro esempio:



[io@linuxbox~]$ eco *

Documenti desktop ls-output.txt Musica Immagini Modelli pubblici Video

[io@linuxbox~]$ eco *

Documenti desktop ls-output.txt Musica Immagini Modelli pubblici Video


Quindi cosa è appena successo? Perché non? eco stampa "*"? Come ricordiamo dal nostro lavoro con i caratteri jolly, il carattere "*" significa che corrisponde a qualsiasi carattere in un nome di file, ma ciò che non abbiamo visto nella nostra discussione originale è stato il modo in cui lo fa la shell. La semplice risposta è che la shell espande il "*" in qualcos'altro (in questo caso, i nomi dei file nella directory di lavoro corrente) prima del eco comando viene eseguito. Quando il tasto Invio è


premuto, la shell espande automaticamente tutti i caratteri qualificanti sulla riga di comando prima che il comando venga eseguito, quindi il eco Il comando non ha mai visto "*", solo il suo risultato espanso. Sapendo questo, possiamo vedere che eco si è comportato come previsto.


 

Il miglior sistema operativo cloud computing su OnWorks: