Osta tämä Shell Scripting Tutorial PDF vain 5 dollarilla ensimmäisestä shell scriptistämme, kirjoitamme vain käsikirjoituksen, jossa lukee”Hello World”. Tämän jälkeen yritämme saada Hello Worldprogramista enemmän irti kuin mistään muusta tutoriaalista, jonka olet koskaan lukenut: -)
Create a file (first.sh) seuraavasti: first.sh
#!/bin/sh# This is a comment!echo Hello World # This is a comment, too!
ensimmäinen rivi kertoo Unixille, että tiedoston suorittaa /bin/sh.Tämä on Bourne Shellin vakiopaikka lähes everunix-järjestelmässä. Jos käytät GNU / Linuxia, /bin / sh on yleensä symbolinen linkki bashiin (tai viime aikoina Dashiin).
toinen rivi alkaa erikoisella tunnuksella: #
. Tämä merkitsee repliikkiä kommentiksi, ja se sivuutetaan kokonaan Kuortaneella.
ainoa poikkeus on, kun filestartien ensimmäinen rivi #!
– kuten meilläkin. Tämä on erityinen direktiivi, jota Unix käsittelee erityisesti. Se tarkoittaa, että vaikka käytät csh: ta, ksh: ta tai jotain muuta interaktiivisena komentotulkkinasi, Bourne-komentotulkin pitäisi tulkita mitä seuraa.
vastaavasti Perl-skripti voi alkaa rivillä #!/usr/bin/perl
kertoakseen interaktiiviselle komentotulkillesi, että seuraava ohjelma tulee suorittaa Perlin toimesta. Bourne shell – ohjelmoinnissa pysytään #!/bin/sh.
kolmannella rivillä kulkee komento: echo
, jossa on kaksi parametria, orargumenttia-ensimmäinen on "Hello"
; toinen on "World"
.
Huomaa, että echo
laittaa automaattisesti yhden tilan parametriensa väliin.#
symboli merkitsee yhä kommenttia; # ja anythingfollowing se jätetään komentotulkin huomiotta.
aja nyt chmod 755 first.sh
tehdäksesi tekstitiedostosta suoritettavan,ja aja ./first.sh
.
näyttösi pitäisi sitten näyttää tältä:
$ chmod 755 first.sh
$ ./first.sh
Hello World
$
olet todennäköisesti odottanut tuota! Voisi vaikka vain juosta:
$ echo Hello World
Hello World
$
nyt tehdään muutama muutos.
Huomaa ensin, että echo
laittaa yhden tilan parametriensa väliin. Laita muutama väli ”Hei” ja ”maailma”väliin. Mitä odotatte tuotoksen olevan? Mitä jos laittaisit VÄLILEHTIHAHMON niiden väliin?
kuten aina shell-ohjelmoinnissa, kokeile sitä ja katso.
tuotos on tismalleen sama! Kutsumme echo
ohjelmaa kahdella argumentilla; se ei välitä sen enempää kuin cp
niiden välisistä aukoista.Nyt muokkaa koodia uudelleen:
#!/bin/sh
# This is a comment!
echo "Hello World" # This is a comment, too!
tällä kertaa se toimii. Olet luultavasti odottanut, että, liian, jos sinulla on kokemusta muista ohjelmointikielistä. Mutta avain ymmärtää, mitä on goingon monimutkaisempi komento ja shell script, on ymmärtää ja kyetä selittämään: miksi?echo
on nyt kutsuttu vain yhdellä argumentilla – merkkijonolla”Hello World”. Se tulostaa tämän tarkasti.
tässä on ymmärrettävä, että komentotulkki jäsentää argumentit ennen kuin siirtää themonin kutsutulle ohjelmalle. Tässä tapauksessa se poistaa lainausmerkit, mutta siirtää merkkijonon yhtenä argumenttina.
viimeisenä esimerkkinä kirjoita seuraava kirjoitus. Yritä ennustaa theoutcome ennen kuin suoritat sen:
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
onko kaikki niin kuin odotit? Jos ei, älä huoli! Nämä ovat vain joitakin niistä asioista, joita käsittelemme tässä opetusohjelmassa … ja kyllä, tulemme käyttämään voimakkaampia komentoja kuin echo
!
Back: Philosophy Next: Variables (Part 1)