køb denne Shell Scripting Tutorial som en PDF for kun $5 for vores første shell script, vi vil bare skrive et script, der siger”Hej Verden”. Vi vil så forsøge at få mere ud af et Hej Verdensprogram end nogen anden tutorial du nogensinde har læst : -)
Opret en fil (first.sh) som følger: first.sh
#!/bin/sh# This is a comment!echo Hello World # This is a comment, too!
den første linje fortæller, at filen skal udføres af /bin/sh.Dette er standardplaceringen af Bourne-skallen på næsten alle Uniks-systemer. Hvis du bruger GNU, er/bin /sh normalt et symbolsk link til bash (eller for nylig dash).
den anden linje begynder med et specielt symbol:#
. Dette markererlinjen som en kommentar, og den ignoreres fuldstændigt af skallen.
Den eneste undtagelse er, når den allerførste linje i filenstarter med #!
– som vores gør. Dette er et specielt direktiv, som Uniks behandler specielt. Det betyder, at selvom du bruger csh, ksh eller noget andet som din interaktive skal, At hvad der følgerskal fortolkes af Bourne shell.
Tilsvarende kan et Perl-script starte med linjen #!/usr/bin/perl
for at fortælle din interaktive skal, at det program, der følger, skal udføresaf perl. For Bourne shell programmering skal vi holde os til #!/bin/sh.
den tredje linje kører en kommando: echo
, med to parametre, orargumenter – den første er "Hello"
; den anden er "World"
.
Bemærk, at echo
automatisk sætter et enkelt mellemrum mellem dets parametre.#
symbolet markerer stadig en kommentar; # og anythingfølger det ignoreres af skallen.
Kør nu chmod 755 first.sh
for at gøre tekstfilen eksekverbar og køre ./first.sh
.
din skærm skal så se sådan ud:
$ chmod 755 first.sh
$ ./first.sh
Hello World
$
du vil sandsynligvis have forventet det! Du kan endda bare køre:
$ echo Hello World
Hello World
$
lad os nu foretage et par ændringer.
bemærk først, at echo
sætter et mellemrum mellem dets parametre. Sæt et par mellemrum mellem” Hej “og”verden”. Hvad forventer du, at produktionen skal være? Hvad med at sætte en fane karakter mellem dem?
som altid med shell programmering, prøv det og se.
udgangen er nøjagtig den samme! Vi kalder echo
programmed to argumenter; det er ligeglad mere endcp
gørom hullerne imellem dem.Rediger nu koden igen:
#!/bin/sh
# This is a comment!
echo "Hello World" # This is a comment, too!
denne gang fungerer det. Det forventede du sandsynligvis også, hvis du har erfaringaf andre programmeringssprog. Men nøglen til at forstå, hvad der går med mere kompleks kommando og shell script, er at forstå og være i stand tilat forklare: hvorfor?echo
er nu blevet kaldt med kun et argument – strengen”Hej Verden”. Det udskriver dette nøjagtigt.
pointen at forstå her er, at skallen analyserer argumenterne, før de passerer themon til det program, der kaldes. I dette tilfælde stripper det citaterne, men passerer strengen som et argument.
skriv følgende script som et sidste eksempel. Prøv at forudsige resultatet, før du kører det:
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
er alt som du forventede? Hvis ikke, skal du ikke bekymre dig! Dette er blot nogle af de ting, vi vil dække i denne tutorial … og ja, vi bruger mere kraftfulde kommandoer end echo
!
Tilbage: filosofi næste: variabler (Del 1)