Köp denna Skalskripthandledning som PDF för endast $5 för vårt första skalskript, vi skriver bara ett skript som säger”Hello World”. Vi kommer då att försöka få ut mer av ett Hello Worldprogram än någon annan handledning du någonsin har läst: -)
skapa en fil (first.sh) enligt följande: first.sh
#!/bin/sh# This is a comment!echo Hello World # This is a comment, too!
den första raden berättar för Unix att filen ska köras av /bin/sh.Detta är standardplatsen för Bourne-skalet på nästan allaunix-system. Om du använder GNU/Linux är /bin/sh normalt en symbolisk länk till bash (eller, nyligen, dash).
den andra raden börjar med en speciell symbol: #
. Detta märkerlinjen som en kommentar, och den ignoreras helt av skalet.
det enda undantaget är när den allra första raden i filenbörjar med #!
– som vår gör. Detta är en speciell riktningvilken Unix behandlar speciellt. Det betyder att även om du använder csh, ksh eller något annat som ditt interaktiva skal, att det som följerbör tolkas av Bourne-skalet.
på samma sätt kan ett Perl-skript börja med raden #!/usr/bin/perl
för att berätta för ditt interaktiva skal att programmet som följer ska utföras av perl. För Bourne shell – programmering ska vi hålla oss till #!/bin/sh.
den tredje raden kör ett kommando: echo
, med två parametrar, orargument-den första är "Hello"
; den andra är "World"
.
Observera att echo
automatiskt sätter ett enda mellanslag mellan dess parametrar.#
symbolen markerar fortfarande en kommentar; # och anythingfollowing det ignoreras av skalet.
kör nu chmod 755 first.sh
för att göra textfilen körbar och kör ./first.sh
.
din skärm ska då se ut så här:
$ chmod 755 first.sh
$ ./first.sh
Hello World
$
Du kommer förmodligen ha förväntat dig det! Du kan till och med bara köra:
$ echo Hello World
Hello World
$
låt oss nu göra några ändringar.
Observera först att echo
sätter ett mellanslag mellan dess parametrar. Sätt några mellanslag mellan ”Hello”och ” World”. Vad förväntar du dig att produktionen ska vara? Vad sägs om att sätta ett fliktecken mellan dem?
som alltid med skalprogrammering, prova det och se.
produktionen är exakt densamma! Vi kallar echo
programmed två argument; det bryr sig inte mer än cp
doesom luckorna mellan dem.Ändra nu koden igen:
#!/bin/sh
# This is a comment!
echo "Hello World" # This is a comment, too!
den här gången fungerar det. Du förväntade dig förmodligen det också om du har erfarenhetav andra programmeringsspråk. Men nyckeln till att förstå vad som gårpå mer komplexa kommando-och skalskript är att förstå och kunnaatt förklara: varför?
echo
har nu kallats med bara ett argument – strängen”Hello World”. Det skriver ut det här exakt.
poängen att förstå här är att skalet tolkar argumenten innan de skickar themon till programmet som kallas. I det här fallet remsor det citaten men passerarsträngen som ett argument.
som ett sista exempel skriver du in följande skript. Försök att förutsäga resultatet innan du kör 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
är allt som du förväntade dig? Om inte, oroa dig inte! Det här är bara några av de saker vi kommer att täcka i denna handledning … och ja, vi kommer att använda mer kraftfulla kommandon än echo
!
tillbaka: filosofi nästa: variabler (Del 1)