Cos'è una shell?
Una shell è un programma che fornisce un'interfaccia tra un utente e un kernel del sistema operativo (OS). Un sistema operativo avvia una shell per ogni utente quando l'utente effettua il login o apre una finestra del terminale o della console.
Che cos'è uno script di shell?
Uno script di shell è un file che contiene comandi di shell e UNIX. Simile ai programmi eseguibili compilati, lo script della shell ha uno scopo specifico ed è riutilizzabile. Quando i comandi nello script della shell sono ordinati e privi di errori, puoi eseguire lo script della shell per eseguire le attività in modo efficiente.
Tutti gli script, i programmi e le procedure utilizzano le seguenti regole:
- Dovrebbero essere eseguiti senza errori.
- Eseguono il compito a cui sono destinati.
- Garantiscono che la logica del programma sia chiaramente definita o evidente.
- Non dovrebbero incorporare lavoro non necessario.
Creazione di script di shell
Uno script di shell è un file di testo che contiene una sequenza di comandi UNIX. Lo script della shell è spesso una sequenza di comandi per la quale hai un uso ripetuto. In genere, esegui la sequenza di comandi nello script della shell immettendo il nome dello script della shell sulla riga di comando.
Per creare uno script di shell, crea un file e inserisci i comandi UNIX in esso. I comandi UNIX includono utilità standard, programmi utente e nomi di altri script necessari per eseguire il tuo compito.
Nota – Se inserisci i nomi di altri script nel tuo script, assicurati che dispongano dell'autorizzazione di lettura ed esecuzione in modo che possano essere eseguiti.Un file di script può avere qualsiasi nome seguendo le convenzioni dei normali nomi di file nell'ambiente del sistema operativo. Quando dai un nome ai tuoi programmi shell dovresti evitare di usare nomi che sono in conflitto con i comandi UNIX esistenti o con le funzioni della shell.
Lo script di esempio seguente utilizza il comando echo per informare l'utente sull'output atteso prima che venga chiamato il comando effettivo che crea l'output. È buona norma quando si scrivono script per informare gli utenti su ciò che sta accadendo in modo che abbiano un'idea del corretto funzionamento dello script.
# vi my_script.sh #!/bin/sh clear echo "SCRIPT BEGINS" echo "Hello $LOGNAME!"
Esecuzione di uno script di shell
Per eseguire uno script di shell come si eseguono altri comandi sul sistema, prima assegnargli il permesso di esecuzione con il comando chmod; ad esempio :
# chmod +x my_script.sh
Questo è il metodo preferito e più comune per eseguire uno script di shell. Viene creata una subshell per eseguire lo script specificato. Concedi l'autorizzazione di esecuzione solo agli utenti che devono eseguire lo script.
Quando uno script viene eseguito in una subshell, le variabili, gli alias e le funzioni create e utilizzate nello script sono note solo nella subshell. Dopo che lo script è terminato e il controllo è tornato alla shell padre, le variabili, le funzioni e altre modifiche allo stato della shell apportate dallo script non sono più note.
L'esempio seguente esegue lo script nella shell corrente:
# . ./my_script.sh
L'esempio seguente mostra l'esecuzione di uno script con il debug:
# sh -x my_script.sh
Eseguiamo lo script che abbiamo creato nella sezione precedente e vediamo se restituisce il risultato corretto.
sh my_script.sh SCRIPT BEGINS Hello root!
Avvio di uno script con #! Personaggi
Quando si esegue uno script che dispone dell'autorizzazione di esecuzione digitando il nome dello script sulla riga di comando, è necessario conoscere la sottoshell (sh, csh, ksh, bash o altre sottoshell) che eseguirà lo script.
La prima riga dello script determina la shell che viene creata come interprete dello script. I primi due caratteri sulla prima riga di uno script sono #!. La shell corrente interpreta quello che segue come il percorso della subshell per eseguire lo script.
Nota – "I primi due caratteri sulla prima riga" significa che non devono esserci righe o spazi vuoti prima di questi caratteri.Negli esempi seguenti, la shell specificata viene biforcuta come subshell per eseguire lo script.
#!/bin/sh #!/bin/csh #!/bin/ksh
Inserimento di commenti in uno script
Le persone che scrivono i copioni di solito non sono le uniche persone che li leggono. Molte persone eseguono script scritti da altri. Se visualizzano il contenuto del file di script per vedere cosa fa lo script, è utile se l'autore dello script ha incluso alcune spiegazioni nei commenti.
È buona norma inserire commenti in programmi e script di shell. I commenti dovrebbero spiegare lo scopo dello script e dovrebbero spiegare tutte le righe specifiche che potrebbero essere particolarmente confuse.
Lo script di esempio, my_script.sh mostrato di seguito, ha un commento all'inizio dello script che spiega cosa fa lo script quando viene eseguito.
# cat my_script.sh #!/bin/sh # This script clears the window, greets the user. clear echo "SCRIPT BEGINS" echo "Hello $LOGNAME!"
L'aggiunta di commenti non influisce sull'esecuzione dello script a meno che non venga introdotto un errore sintattico quando vengono aggiunti i commenti. I commenti sono disponibili a scopo di documentazione, quindi qualcuno che legge lo script avrà un'idea di cosa accadrà quando lo script verrà eseguito.
I commenti a volte sono le prime righe immesse in uno script di shell. I commenti possono elencare le operazioni dettagliate che devono essere eseguite. Segui ogni riga di commento dai comandi del sistema operativo per eseguire l'operazione.
UNIX/Linux:cos'è una shell? Cosa sono le diverse shell?Come eseguire il debug degli script della shell