Workstation online OnWorks Linux e Windows

Logo

Hosting online gratuito per workstation

<Precedenti | Contenuti | Succ.>

Posizione del file di script

Con i permessi impostati, possiamo ora eseguire il nostro script:



[io@linuxbox~]$ ./Ciao mondo

Ciao mondo!

[io@linuxbox~]$ ./Ciao mondo

Ciao mondo!


Affinché lo script venga eseguito, dobbiamo far precedere il nome dello script da un percorso esplicito. Se non lo facciamo, otteniamo questo:



[io@linuxbox~]$ Ciao mondo

bash: hello_world: comando non trovato

[io@linuxbox~]$ Ciao mondo

bash: hello_world: comando non trovato


Perchè è questo? Cosa rende il nostro script diverso dagli altri programmi? A quanto pare, niente. Il nostro copione va bene. La sua posizione è il problema. Nel capitolo 11, abbiamo discusso del PERCORSO variabile d'ambiente e il suo effetto su come il sistema cerca i programmi eseguibili. Per ricapitolare, il sistema cerca un elenco di directory ogni volta che ha bisogno di trovare un programma eseguibile, se non viene specificato un percorso esplicito. Ecco come il sistema sa eseguire

/bin/ls quando digitiamo ls alla riga di comando. La directory /bin è una delle directory che il sistema cerca automaticamente. L'elenco delle directory è contenuto in una variabile di ambiente denominata PATH. La variabile PATH contiene un elenco di directory separate da due punti in cui eseguire la ricerca. Possiamo visualizzare i contenuti di PATH:

Posizione del file di script


[io@linuxbox~]$ echo $ PATH

/home/me/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:

/bin:/usr/giochi

[io@linuxbox~]$ echo $ PATH

/home/me/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:

/bin:/usr/giochi


Qui vediamo il nostro elenco di directory. Se il nostro script si trovasse in una qualsiasi delle directory nell'elenco, il nostro problema sarebbe risolto. Notare la prima directory nell'elenco,

/home/me/bin. La maggior parte delle distribuzioni Linux configura la variabile PATH in modo che contenga una directory bin nella directory home dell'utente, per consentire agli utenti di eseguire i propri programmi. Quindi, se creiamo la directory bin e inseriamo il nostro script al suo interno, dovrebbe iniziare a funzionare come altri programmi:



[io@linuxbox~]$ cestino mkdir [io@linuxbox~]$ mv ciao_mondo bin [io@linuxbox~]$ Ciao mondo

Ciao mondo!

[io@linuxbox~]$ cestino mkdir [io@linuxbox~]$ mv ciao_mondo bin [io@linuxbox~]$ Ciao mondo

Ciao mondo!


E così fa.

Se l' PERCORSO variabile non contiene la directory, possiamo aggiungerla facilmente includendo questa riga nel nostro .bashrc file:


export PATH=~/bin:"$PATH"

export PATH=~/bin:"$PATH"


Dopo che questa modifica è stata apportata, avrà effetto in ogni nuova sessione del terminale. Per applicare la modifica alla sessione del terminale corrente, dobbiamo fare in modo che la shell rilegga il .bashrc file. Questo può essere fatto "acquistandolo":



[io@linuxbox~]$ . .bashrc

[io@linuxbox~]$ . .bashrc


Il punto (.) comando è sinonimo di source comando, una shell incorporata che legge un file specificato di comandi della shell e lo tratta come un input dalla tastiera.


Immagine

Nota: Ubuntu (e la maggior parte delle altre distribuzioni basate su Debian) aggiunge automaticamente il

~/bin alla variabile PATH se la directory ~/bin esiste quando viene eseguito il file .bashrc dell'utente. Quindi, sui sistemi Ubuntu, se creiamo la directory ~/bin e poi ci disconnettiamo e accediamo di nuovo, tutto funziona.


Immagine


 

Il miglior sistema operativo cloud computing su OnWorks: