struttura:

#! inserire l'interprete
codice dello script non ci sono segni di punteggiatura per terminare la ruiga del codice si va a capo (come VBA)
eventuali commenti
codice dello script
.......

esecuzione di uno script
dopo aver editato lo script ci sono 3 modi per eseguirlo:

  • modificando i permessi e rendendo eseguibile il file:
    1. usare il comando chmod

    2. chmod 755 nome_script autorizzo all'esecuzione tutti e il proprietario anche alla scruittura
      uno script per poter essere eseguito deve avere anche il permesso di lettura perché la shell deve essere in grado di leggerlo

    3. provo lo script eseguendolo per cercare eventuali errori:

    4. ./nome_script

    5. rendiamo eseguibile lo script in qualisasi punto del sistemas inserndolo in un path di utilizzo

    6. possiamo per esempio spostare lo script nella directory /usr/local/bin :
      sudo mv nome_script /usr/local/bin/


  • sh

  • con il comando sh si esegue un file come uno script
    sh nome_file
    sh /path/nome_file

  • .

  • con . eseguo un file come script
    . nome_file
    . /path/nome_file


    chiusura anticipata ed uscita da uno script
    si usa il comando exit con il codice errore:


    script esguite nella stessa shell
    gli script venono di default eseguiti da una shell secondaria (/bin/sh), che si chiude quando lo script stesso termina la sua esecuzione.
    pertanto la shell perde tutte le impostazioni e le variabili (compresa PWD, cioè il percorso della directory corrente).

    alcuni comandi come per esempio cd, anche se eseguiti in uno script alla chiusura di esso è come se non siano stati eseguiti:
    cd /home/aur
    ls -la --color
    il risultato sarà la visualizzazione del contenuto della directory /home/aur/.

    quello che accade però, è che la posizione della shell all'interno del file system non sarà /home/aur/ ma risulterà essere quella da cui lo script è stato invocato.

    per ovviare a tale comportamento si potranno utilizzare due metodi


    in questo caso infatti sarà la shell corrente ad eseguire i comandi e non un processo figlio