Utilizzo degli shell

Creazione ed esecuzione di uno script shell
Esecuzione di più processi di sfondo nella shell Korn o Posix
Specificazione di uno shell per un file script

Creazione ed esecuzione di uno script shell

Gli script shell forniscono un metodo facile per eseguire comandi o sequenze di comandi complicati e attività di routine. Uno script shell è un file che contiene uno o più comandi. Quando viene digitato un nome di un file script shell, il sistema esegue la sequenza di comandi contenuta dal file.

E' possibile creare uno script shell utilizzando un editor di testo. Lo script può contenere i comandi del sistema operativo ed i comandi incorporati shell.

I passi seguenti sono indicazioni generali per la scrittura di script shell:

  1. L'utilizzo dell'editor di testo crea e salva un file. E' possibile includere qualsiasi combinazione di comandi shell e di sistema operativo nel file script shell. Per convenzione, gli script shell che non sono impostati per l'utilizzo da molti utenti, vengono memorizzati nell'indirizzario $HOME/bin.
    Nota: Il sistema operativo non supporta le sottoroutine setuid o setgid all'interno di uno script shell.
  2. Utilizzare il comando chmod per consentire solo all'utente di eseguire il file. Ad esempio, se il file è chiamato script1, immettere:

    chmod u=rwx script1

    Premere Invio.

  3. Immettere il nome script nella riga comandi per eseguire lo script shell. Per eseguire lo script shell script1, immettere:

    script1

    Premere Invio.

    Nota: E' possibile eseguire uno script shell senza renderlo eseguibile se un comando shell (ksh, bsh, o csh) precede il nome file dello script shell sulla riga comandi. Ad esempio, per eseguire un file non eseguibile chiamato script1 sotto il controllo di una shell Korn, immettere:
    ksh script1

Esecuzione di più processi di sfondo nella shell Korn o Posix

La shell Korn o quella POSIX consente di eseguire uno o più comandi come processi di sfondo. Questi comandi, eseguiti da uno script shell, vengono chiamati coprocessi.

Designare un coprocesso mettendo l'operatore |& dopo un comando. E' stato eseguito il pipe dell'emissione e dell'immissione standard nello script.

E' necessario che un coprocessore rispetti le seguenti restrizioni:

L'esempio seguente dimostra come viene approvata l'immissione e restituita da un coprocesso:

echo "Initial process"
./FileB.sh |&
read -p a b c d
echo "Read from coprocess: $a $b $c $d"
print -p "Passed to the coprocess"
read -p a b c d
echo "Passed back from coprocess: $a $b $c $d"

FileB.sh
   echo "The coprocess is running"
   read a b c d
   echo $a $b $c $d

L'emissione standard che ne risulta è la seguente:

Initial process
Read from coprocess: The coprocess is running
Passed back from coprocess: Passed to the coprocess

Per scrivere al coprocess, utilizzare il comando print -p. Per leggere dal coprocess, utilizzare il comando read -p.

Specificazione di uno shell per un file script

E' possibile eseguire uno script shell in una shell specifica includendo la shell in uno script shell.

Per eseguire uno script shell eseguibile al di sotto di una shell specifica, immettere #!Path sulla prima riga dello script shell e premere Invio. I caratteri #! identificano il tipo di file. La variabile Path specifica il nome del percorso della shell dalla quale eseguire lo script shell.

Ad esempio, per eseguire lo script bsh nella shell Bourne, immettere:

#!/usr/bin/bsh

Premere Invio.