Acquista questa Shell Scripting Tutorial in formato PDF per soli $5 Per il nostro primo script di shell, ci limiteremo a scrivere uno script che dice”Ciao mondo”. Cercheremo quindi di ottenere di più da un Hello Worldprogram rispetto a qualsiasi altro tutorial che tu abbia mai letto: -)
Crea un file (first.sh) come segue: first.sh
#!/bin/sh# This is a comment!echo Hello World # This is a comment, too!
La prima riga indica a Unix che il file deve essere eseguito da /bin/sh.Questa è la posizione standard della shell Bourne su quasi tutti i sistemi Unix. Se stai usando GNU / Linux,/bin / sh è normalmente un collegamento simbolico a bash (o, più recentemente, dash).
La seconda riga inizia con un simbolo speciale:#
. Questo segna la linea come commento, ed è completamente ignorato dalla shell.
L’unica eccezione è quando la prima riga del fileinizia con #!
– come fa il nostro. Questa è una direttiva specialeche Unix tratta appositamente. Significa che anche se stai usando csh, ksh o qualsiasi altra cosa come shell interattiva, ciò che segue dovrebbe essere interpretato dalla shell Bourne.
Allo stesso modo, uno script Perl può iniziare con la riga #!/usr/bin/perl
per dire alla shell interattiva che il programma che segue deve essere eseguito da perl. Per la programmazione di Bourne shell, ci atterremo a #!/bin/sh.
La terza riga esegue un comando: echo
, con due parametri, oarguments – il primo è "Hello"
; il secondo è "World"
.
Si noti che echo
metterà automaticamente un singolo spazio tra i suoi parametri.
Il simbolo#
segna ancora un commento; il # e anythingfollowing viene ignorato dalla shell.
ora eseguichmod 755 first.sh
per rendere eseguibile il file di testo,ed esegui./first.sh
.
Il tuo schermo dovrebbe essere simile a questo:
$ chmod 755 first.sh
$ ./first.sh
Hello World
$
Probabilmente te lo sarai aspettato! Potresti anche solo eseguire:
$ echo Hello World
Hello World
$
Ora apportiamo alcune modifiche.
Innanzitutto, si noti cheecho
mette UNO spazio tra i suoi parametri. Metti alcuni spazi tra “Ciao ” e”Mondo”. Cosa ti aspetti che sia l’output? Che dire di mettere un carattere di tabulazione tra di loro?
Come sempre con la programmazione shell, provare e vedere.
L’uscita è esattamente la stessa! Stiamo chiamando il programmaecho
con due argomenti; non gli importa più dicp
sugli spazi vuoti tra di loro.Ora modificare nuovamente il codice:
#!/bin/sh
# This is a comment!
echo "Hello World" # This is a comment, too!
Questa volta funziona. Probabilmente ti aspettavi anche questo, se hai esperienzadi altri linguaggi di programmazione. Ma la chiave per capire cosa sta succedendo con comandi e script di shell più complessi, è capire ed essere in grado di spiegare: PERCHÉ?
echo
è stato ora chiamato con un solo argomento – la stringa”Hello World”. Lo stampa esattamente.
Il punto da capire qui è che la shell analizza gli argomenti PRIMA di passare themon al programma che viene chiamato. In questo caso, rimuove le virgolette ma passala stringa come argomento.
Come esempio finale, digitare il seguente script. Prova a prevedere l’uscita prima di eseguirlo:
first2.sh
#!/bin/sh
# This is a comment!
echo "Hello World" # This is a comment, too!
echo "Hello World"
echo "Hello * World"
echo Hello * World
echo Hello World
echo "Hello" World
echo Hello " " World
echo "Hello "*" World"
echo `hello` world
echo 'hello' world
È tutto come ti aspettavi? Se no, non ti preoccupare! Queste sono solo alcune delle cose che copriremo in questo tutorial … e sì, useremo comandi più potenti diecho
!
Indietro: Filosofia Avanti: Variabili (Parte 1)