Det er mange guider på internett som viser hvordan du oppretter Shell-skript ved hjelp av BASH, og denne veiledningen tar sikte på å gi et litt annerledes spinn fordi det er skrevet av noen som har svært lite shell scripting-opplevelse.
Nå kan du tro at dette er en dum idé, men jeg finner at noen guider snakker med deg som om du allerede er en ekspert og andre guider tar for lang tid å kutte til jakten.
Mens min LINUX / UNIX skal skripting erfaring er begrenset, er jeg en programvareutvikler av handel og jeg er en dab hånd på skriptspråk som PERL, PHP og VBScript.
Poenget med denne veiledningen er at du vil lære som jeg lærer og hvilken informasjon jeg henter, jeg vil videresende til deg.
Starter
Det er åpenbart mye teori som jeg kunne videresende til deg med en gang, for eksempel å beskrive de forskjellige typer skall og fordelene ved å bruke BASH over KSH og CSH.
De fleste når du lærer noe nytt vil hoppe inn og begynne med noen praktiske leksjoner først og med det i tankene, jeg skal ikke bore deg med trivia som ikke er viktig akkurat nå.
Alt du trenger for å følge denne veiledningen er en tekstredigerer og en terminal som kjører BASH (standardskallet på de fleste Linux-distribusjoner).
Tekstredigerere
Andre guider som jeg har lest har foreslått at du trenger en tekstredigerer som inkluderer fargekoding av kommandoer, og de anbefalte redaktørene er enten VIM eller EMACS.
Fargekodning er fint, da det fremhever kommandoer når du skriver dem, men for den absolutte nybegynner kan du tilbringe de første ukene å lære VIM og EMACS uten å skrive en enkelt linje med kode.
Av de to foretrekker jeg EMACS, men for å være ærlig, foretrekker jeg å bruke en enkel editor som nano, gedit eller leafpad.
Hvis du skriver skript på egen datamaskin og du vet at du alltid vil ha tilgang til et grafisk miljø, kan du velge redigeringsprogrammet som fungerer best for deg, og det kan enten være grafisk som GEdit eller en redaktør som kjører direkte i terminalen slik som nano eller vim.
I denne veiledningens bruk vil jeg bruke nano som det er installert nativt på de fleste Linux-distribusjoner, og det er derfor sannsynlig at du får tilgang til det.
Åpning av et terminalvindu
Hvis du bruker en Linux-distribusjon med grafisk skrivebord som Linux Mint eller Ubuntu, kan du åpne et terminalvindu ved å trykke CTRL + ALT + T.
Hvor å sette skriptene dine
I denne veiledningen kan du sette skriptene dine i en mappe under hjemmemappen.
Innenfor et terminalvindu sørg for at du er i din hjemmemappe ved å skrive følgende kommando:
cd ~
CD-kommandoen står for endringskatalog og tilde (~) er en snarvei for hjemmemappen.
Du kan kontrollere at du er på riktig sted ved å skrive følgende kommando:
pwd
Pwd-kommandoen vil fortelle deg din nåværende arbeidskatalog (hvor du er i katalogtreet). I mitt tilfelle kom det tilbake / hjem / gary.
Nå vil du åpenbart ikke ønske å sette skriptene dine rett inn i hjemmemappen, så opprett en mappe som heter skript ved å skrive følgende kommando.
mkdir-skript
Bytt inn i den nye skriptmappen ved å skrive følgende kommando:
Ditt første skript
Det er vanlig når du lærer å programmere for å gjøre det første programmet bare å skrive ut ordene "Hello World".
Skriv inn følgende kommando fra din skriptmappe:
nano helloworld.sh
Skriv inn følgende kode i nano-vinduet.
#! / bin / bash echo "hei verden"
Trykk CTRL + O for å lagre filen og CTRL + X for å avslutte nano.
Skriptet selv består av følgende:
#! / Bin / bash må inkluderes på toppen av alle skriptene du skriver som det lar tolker og operativsystemet vite hvordan du skal håndtere filen. I utgangspunktet bare husk å sette det inn og glem hvorfor du gjør det.
Den andre linjen har en enkelt kommando som kalles ekko, som utgir teksten som umiddelbart følger den.
Merk at hvis du vil vise mer enn ett ord, må du bruke dobbeltsedler (") rundt ordene.
Du kan nå kjøre skriptet ved å skrive følgende kommando:
sh helloworld.sh
Ordene "hallo verden" skal vises.
En annen måte å kjøre skript på er som følger:
./helloworld.sh
Sjansene er at hvis du kjører den kommandoen i terminalen din med en gang, får du en tillatelsesfeil.
For å gi tillatelser for å kjøre skriptet på denne måten skriver du inn følgende:
sudo chmod + x helloworld.sh
Så hva skjedde egentlig der? Hvorfor var du i stand til å kjøre sh helloworld.sh uten å endre tillatelser, men å kjøre ./helloworld.sh forårsaket et problem?
Den første metoden laster bash tolken som tar helloworld.sh som en inngang og utarbeider hva du skal gjøre med det. Bash tolken har allerede tillatelser til å kjøre og trenger bare å kjøre kommandoene i skriptet.
Den andre metoden lar operativsystemet finne ut hva som skal gjøres med skriptet, og det krever derfor en kjørbar bit for å kunne utføres.
Ovennevnte skript var ok, men hva skjer hvis du vil vise anførselstegnene?
Det er ulike måter å oppnå dette på. For eksempel kan du sette tilbakeslag for anførselstegnene som følger:
ekko "hei verden "
Dette vil produsere produksjonen "hallo verden".
Vent litt, hva om du vil vise "hallo verden "?
Vel, du kan også unnslippe flyktekarakterene
ekko "" hei verden ""
Dette vil produsere produksjonen "hallo verden ".
Nå vet jeg hva du tenker. Men jeg vil virkelig vise "" hei verden ""
Ved å bruke ekko med alle disse flykte tegnene kan bli ganske dumt. Det er en alternativ kommando du kan bruke kalt printf.
For eksempel:
printf '% s n' ' "" hei verden ""'
Legg merke til at teksten vi vil vise er mellom enkelt anførselstegn. Printf-kommandoen gir ut tekst fra skriptet ditt. % S betyr at den vil vise en streng, n skriver ut en ny linje.
Sammendrag
Vi har egentlig ikke dekket mye bakken i del ett, men forhåpentligvis har du ditt første skript som fungerer.
I neste del vil vi se på å forbedre på hallo verdenskriptet for å vise tekst i forskjellige farger, akseptere og håndtere inngangsparametere, variabler og kommentere koden din.