Nybegynnerguide

Bash Scripting Tutorial for nybegynnere

Bash Scripting Tutorial for nybegynnere

Hvis du kommer i gang med Linux-systemer, vil begreper som “Shell scripting” eller “Bash-skripting”Kan være ganske vanlig - men hva betyr de? Før vi kommer i detalj, kan læring av Bash-skripting hjelpe deg med å spare tid på å utføre og utføre forskjellige systemoppgaver og forstå Linux-kommandolinjen (Terminal) bedre og automatisere flere systemoppgaver.

Hva er Bash?

Bash, et akronym for “Bourne-Again-Shell,” er et Unix-skall eller kommandospråktolk for GNU-operativsystemet. Det har vært den viktigste Shell for Linux-distribusjoner og Apple macOS-utgivelser før macOS Catalina. Bash er også tilgjengelig for Windows 10 via Windows-delsystemet for Linux.

Bash kjører vanligvis i et tekstvindu, kjent som Terminal, der brukere skriver inn kommandoer for å utføre forskjellige oppgaver. Bash kan også utføre kommandoer skrevet i en fil, en metode referert til som “Bash scripting.”

Forskjellen mellom Bash scripting og Shell Scripting

Shell-skripting og Bash-skripting er ikke de samme tingene. Med Bash scripting bruker du eksplisitt bash-skallet. På den annen side kan Shell-skripting være et ganske bredt ord siden vi har andre skjell tilgjengelig enn Bash. Noen av de vanligste inkluderer Korn (ksh), C shell (csh), Z shell (zsh) og Bash shell (sh). Det ville imidlertid ikke være en overraskelse å finne folk som bruker bash scripting og shell scripting om hverandre for å bety det samme. Innlegget vårt på Topp 6 Open Source Shells for Linux gir en detaljert beskrivelse av disse skallene.

I dette innlegget vil vi se på Bash scripting. Som standard bruker mange tilgjengelige Linux-distribusjoner Bash-skallet. Sjekk ut innlegget vårt på de 6 beste Linux-distribusjonene for nybegynnere. For å bekrefte skallet du bruker på din nåværende Linux-distribusjon, utfør kommandoen på terminalen.

ekko $ SHELL

skall

Fra bildet over kan du se standard tolk i systemet mitt er bash. For øyeblikket kjører jeg Ubuntu 20.04 LTS. La oss dykke inn!

Forstå Bash-skript

Bash-skript er tekstfiler som inneholder bash-kommandoer som utføres for å utføre forskjellige oppgaver. For å skrive disse skriptene trenger du bare en enkel tekstredigerer som gedit, leaf pad, vim, nano og mye mer. Husk å lagre skriptene dine med en .sh utvidelse og som ren tekst og ikke rik tekst. En av favorittredaktørene mine som jeg bruker til å skrive manus er nano-editoren.

Navngi, tildele tillatelser og utføre et Bash-skript

Som forklart ovenfor, sørg for å bruke .sh-utvidelse for bash-skriptene dine. For eksempel kan du ha et skript med navnet fosslinux_backup.sh. Det ville imidlertid være best hvis du var forsiktig med å navngi manusene dine. For eksempel liker de fleste å lagre de fleste av skriptene sine som “test.”Ukjent for de fleste, det er en Unix innebygd kommando kalt test, som sjekker filtyper og sammenligner verdier. Du kan bruke hvilken kommando for å sjekke om det er et program med samme navn som skriptet for å forhindre programkonflikter.

som [kommando] e.g hvilken test

Hvilken kommando

Fra utgangen ovenfor kan vi se at testen allerede er en innebygd kommando. Derfor, for å unngå konflikter mellom programmer, vil jeg ikke nevne noen av skriptene mine som "test.”

For å gjøre skriptet kjørbart for hver bruker, bruk kommandoen nedenfor:

chmod + x [skript.sh]

For å gjøre skriptet kjørbart for den nåværende brukeren, bruk kommandoen nedenfor:

chmod u + x [skript.sh]

Nå for å kjøre skriptet, utfør kommandoen nedenfor:

./ [script_name]

Med metoden ovenfor vil du innse at du vil trenge å bruke cd kommando for å flytte til katalogen som inneholder skriptet eller sende banen til skriptet. Det er imidlertid en løsning på dette. Lagre skriptene dine i søppel katalog til stede i hjemmekatalogen.

Med de siste oppdateringene følger ikke de fleste distribusjoner med søppel mappen som standard. Du blir derfor bedt om å opprette den manuelt. Ved å plassere skriptene dine i denne mappen, kan du utføre skriptet ved å skrive navnet på terminalen uten å bruke cd og ./ kommandoer.

Retningslinjer for Bash Scripting

Før du skriver det første skriptet, er det noen retningslinjer du trenger å forstå når du skriver manus.

De #!/ bin / bash (Hash-Bang Hack) uttalelse er veien til skallet vi skal bruke. Hvis du bruker et annet skall, må du redigere denne banen. Vi forstår at alle kommentarer starter med # symbol. Imidlertid når fulgt med en (!) merke i Hash-Bang Hack, er skriptet tvunget til å utføre med skallet pekt på av denne linjen. I vårt tilfelle er det Bash-skallet.

Ditt første Bash-skript

Som de fleste programmeringsspråk, vil vi skrive et skript som skriver ut "Hei Verden" uttalelse når den blir henrettet. Åpne favoritt teksteditoren din og lim inn kommandoene nedenfor. Lagre tekstfilen som fossHelloWorld.sh eller et annet navn som ikke er en innebygd kommando.

#!/ bin / bash #Dette skriptet vil skrive ut 'Hello World' på Terminal echo "Hello World"

Når du har lagret filen, gjør du den kjørbar ved å utføre kommandoen nedenfor:

chmod + x fossHelloWorld.sh

Kjør det nå med kommandoen nedenfor:

./ fossHelloWorld.sh

Første manus

Skriptet ovenfor har bare tre linjer. Den første er Hash-Bang Hack, som vi har diskutert ovenfor, den andre er en kommentar, og den tredje er kommandoen som skal utføres. Merk at kommentarer aldri blir utført.

La oss se på andre bash-skriptfunksjoner som du kan bruke.

Ekkokommando

Echo-kommandoen brukes til å skrive ut utdata på Linux-kommandolinjen eller terminalen. Hvis du er utvikler og har jobbet med PHP før, må du også ha kommet over denne kommandoen. La oss skrive et lite bash-skript for å demonstrere hvordan denne kommandoen fungerer.

#!/ bin / bash # La oss skrive ut første linje ekko "Dette er Fosslinux.com - Med en ny linje "# La oss skrive ut den andre setningen uten en ny linje ekko -n" Dette er Fosslinux - Ingen ny linje "

Lagre skriptet, tilordne de nødvendige tillatelsene og kjør det.

Bash Echo

For å forstå koden, skriver den første ekkokommandoen ut en uttalelse og går til neste linje. Den andre ekkokommandoen har -n argument som hindrer skriptet i å gå til neste linje. Du kan bruke mange andre alternativer med Echo-kommandoen, inkludert variabler, som vi vil se nedenfor.

Variabler

Variabler er en vanlig og nødvendig del av ethvert programmeringsspråk. Man kan erklære Bash-variabler på flere måter. Når du tilordner en verdi til en variabel, trenger du ikke bruke noen symboler. Når du ringer variabelens verdi, må du imidlertid bruke $ tegn på begynnelsen av variabelen.

Du kan bruke variabler på terminalen eller som skript. Utfør kommandoene nedenfor på terminalen din.

myWebsite = "Fosslinux.com "ekko $ myWebsite

Bruke variabler på terminalen

La oss nå lage et bash-skript som tar to innganger fra brukeren og lagrer dem i variabler $ x og $ y. Skriptet vil da sjekke om de to verdiene er like eller ikke.

#!/ bin / bash echo "Enter the first number" read a echo "Enter the second number" read b if [[$ a -eq $ b]] then echo "Numbers are equal" else echo "Numbers are not equal" fi

Lagre skriptet og kjør det. Fra bildet nedenfor kan du se at vi har angitt forskjellige verdier, og skriptet kunne sjekke om de er like eller ikke.

Bash variabler

La oss nå se nærmere på koden. De to første ekkosetningene ber brukeren om å legge inn første og andre tall. De lese kommandoen vil vente på at brukeren skal skrive inn et nummer og lagre det til den angitte variabelen. I vårt tilfelle er det en og b. Vi har da en if-setning som sjekker om de to verdiene er like eller ikke.

Betinget uttalelse

I ethvert programmeringsspråk kontrollerer betingede utsagn flyten til et program. Et stykke kode utføres bare når en bestemt betingelse er oppfylt. Noen av de vanligste betingede utsagnene inkluderer "if-then-else" og "case.”Nedenfor er den grunnleggende syntaksen til if-then-else-setningen.

hvis [[tilstand]] da  ellers  fi

Ta en titt på skriptet nedenfor, som bruker den "hvis-så-annet" -betingelsen.

#!/ bin / bash ekko "Enter Your Age" les alder hvis ((alder> 18)) så ekko "Du kan gå til festen" annet ekko "Du er ikke kvalifisert til å gå til festen" fi

Bash betingede uttalelser

La oss gå gjennom skriptet ovenfor. Vi har ekko uttalelse som ber brukerne om å angi aldersnummeret. De lese uttalelse lagrer alderen som er angitt til en variabel “alder.”Vi har da en hvis-så-annet betinget uttalelse som sjekker om alderen er over 18 år før brukeren instrueres.

Sløyfer

Sløyfer brukes ofte når du vil utføre et stykke kode flere ganger. Hvis jeg for eksempel vil ekko 1000 linjer i utsagnet "Velkommen til Fosslinux", ville jeg krevd 1000 ekkouttalelser. Imidlertid, med sløyfer, er alt jeg trenger å gjøre å spesifisere antall ganger jeg vil at uttalelsen skal ekko eller skrives ut på terminalen. Bash støtter tre typer løkker; For Loop, While Loop og Before Loop. La oss se på hver av dem.

A For Loop brukes til å gjenta gjennom en liste over spesifiserte data eller en matrise. Nedenfor er den grunnleggende syntaksen til Bash For Loop;

for verdi i 1 2 3 4 5 ... N gjør instruksjon1 instruksjon2 instruksjon-N ferdig

eller,

for VALUE i fil1 fil2 fil3 gjør instruksjon1 på $ VALUE instruksjon2 instruksjon-N ferdig

Ta en titt på skriptet nedenfor. Det går gjennom de angitte ukedagene og skriver dem ut på Terminal linje for linje.

#Les et ukedagsnavn i hver iterasjon av løkken for dag i mandag tirsdag onsdag torsdag fredag ​​lørdag søndag gjør ekko "$ dag" gjort

La oss lagre skriptet som ForLoop.sh og utfør det. Nedenfor er et skjermbilde av utgangen.

For Loop

Det er bare et enkelt eksempel på hva du kan gjøre med For Loop. Du kan også kombinere det med betingede uttalelser for å fullføre en bestemt oppgave.

While Loop utfører en bestemt oppgave mens en bestemt tilstand forblir sann. I hver iterasjon vil løkken først sjekke tilstanden før instruksjonene utføres. Når tilstanden er falsk, vil sløyfen avsluttes. Den grunnleggende syntaksen til bash While-løkken er som følger:

mens [CONDITION] gjør [COMMANDS] ferdig

For eksempel kan vi ha et skript som vil skrive ut uttalelsen “Velkommen til FOSSLINUX.COM ” 20 ganger til en variabel X er satt til 20. La oss prøve å implementere det praktisk. Ta en titt på skriptet nedenfor.

#!/ bin / bash x = 1 mens [$ x -le 20] gjør ekko "Velkommen til FOSSLINUX.COM "x = $ (($ x + 1)) ferdig

La oss lagre skriptet som WhileLoop.sh og utfør det. Nedenfor er et skjermbilde av utgangen.

Mens Loop

La oss ta en titt på While Loop-skriptet ovenfor. Vi erklærer først en variabel X som gir verdien 1. Vi oppretter deretter en While-setning som sender utsagnet "Velkommen til FOSSLINUX.COM ”mens X er mindre enn 20. Til slutt øker vi X en etter hver iterasjon.

Bash Before-loops brukes til å utføre et sett med instruksjoner eller kommandoer så lenge den angitte tilstanden evalueres til falsk. Nedenfor er den grunnleggende syntaksen til Fram Loop.

til [BETINGELSE] gjør [INSTARUKSJONER / KOMMANDOER] utført

I likhet med While Loop evaluerer Before Loop først innstilt tilstand før den utfører instruksjonene eller kommandoene. Hvis tilstanden evalueres til falsk, utføres instruksjonene. Sløyfen avsluttes når tilstanden evalueres til sant. Ta en titt på eksemplet nedenfor.

#!/ bin / bash count = 0 til [$ count -gt 5] do echo Counter: $ count ((count ++)) done

Etter at vi har lagret og kjørt skriptet ovenfor, får vi utdataene nedenfor:

Inntil Loop

Skriptene ovenfor oppretter først et variabelantall og setter det til null (0). Det er tilstanden som styrer flyten av programmet vårt. Inntil sløyfen sjekker om telleverdien er større enn 5. Hvis ikke, vil den skrive ut instruksjonene som er bestått. Imidlertid, hvis verdien er større enn 5, vil sløyfen avsluttes umiddelbart. Til slutt øker vi tellingsverdien med 1 (count ++).

Bash Funksjoner

I programmering og skripting brukes funksjoner til å holde en gjenbrukbar kode som er nødvendig for å utføre en bestemt oppgave. Derfor, hvis du har lignende kommandoer som du vil utføre på forskjellige deler i skriptet, trenger du ikke å skrive disse kommandoene flere ganger. Sett dem i en funksjon og utfør funksjonen i stedet.
Nedenfor er den grunnleggende syntaksen til Bash-funksjonen.

funksjonsnavn ()    

eller,

funksjon funksjonsnavn    

La oss lage et enkelt skript som bruker funksjoner. Vi oppretter først en funksjon kalt “myFunction”, som sender utsagnet “Hei, jeg er den første funksjonen” når den blir ringt. Den andre funksjonen, "myCities", er litt avansert når det tar argumenter. Argumentene blir gitt etter å ha kalt funksjonsnavnet. De er tilgjengelige i funksjonen som $ 1.

#!/ bin / bash myFunction () echo "Hei, jeg er den første funksjonen" echo "Hei, jeg er den første funksjonen" echo echo "Dette er den andre funksjonen" funksjon myCities () echo Hello $ 1 myFunction myCities Washington, D.C myCities Phoenix

Etter å ha lagret og utført skriptet, får vi utdataene nedenfor.

Funksjoner

Bash-menyer

Når du skriver et skript for å utføre en avansert oppgave, kan det hende du trenger at brukeren velger et enkelt alternativ fra flere alternativer som vises på terminalen. For å oppnå det, vil vi bruke bash å velge kommando.

Det skaper et enkelt menyskript som vil be brukerne om å velge favoritt Linux-distribusjoner fra en liste. Ta en titt på skriptet nedenfor.

#!/ bin / bash #Skriv ut melding for brukerens ekko "Velg din favoritt Linux-distribusjon" velg distro i Ubuntu Fedora OpenSUSE DeepIN Parrot ArchLinux Kali gjør #Skriv ut den valgte verdien hvis [[$ distro == "Avslutt"]] og avslutt 0 annet ekko "Valgt Linux-distribusjon er $ distro" ferdig

La oss lagre skriptet som meny.sh og utfør den. Vi får utdataene nedenfor.

Bash-menyer

I skriptet ovenfor har vi en liste over Seven Linux-distribusjon fra brukeren vil velge en. Etter at de har gjort et valg, lagres det i variabelen distro og senere skrevet ut ved å sammenkoble den med strengen “Valgt Linux-distribusjon er.” Bash-utvalgte menyer kan være ganske nyttige, spesielt når du har flere skript som utfører forskjellige oppgaver, og man må velge den de ønsker å utføre.

Aritmetikk

Hvert programmeringsspråk støtter utførelse av aritmetiske operasjoner, og bash scripting er ikke noe unntak. Hvordan vi utfører aritmetiske operasjoner er imidlertid litt annerledes. Nedenfor er en av måtene du kan utføre aritmetiske operasjoner i bash. Vi vil se på fire typer aritmetiske operasjoner - Sum, inndeling og multiplikasjon.

#!/ bin / bash # Beregn sumresultatet = $ ((70 + 15)) # Print sum value echo "sum = $ result" # Calculate the division result = $ ((100/25)) # Print divisjonsverdi echo "divisjon = $ resultat "#Calculate Multiplikation result = $ ((15 * 15)) echo" Multiplication = $ result "

La oss lagre ovenstående skript som aritmetikk.sh og utfør den. Vi får utdataene nedenfor.

Aritmetikk

Konklusjon

Det er en komplett nybegynnerveiledning for å komme i gang med Bash-skripting. Det er imidlertid mer å Bash enn det som er dekket i denne opplæringen. Et av stedene jeg vil anbefale for å fremme ferdighetene dine, er GNUs Bash Reference Manual. Hvis du møter noen problemer eller kommenterer dette innlegget, er du velkommen til å trykke kommentarene nedenfor.

Hvordan installere og spille Doom på Linux
Introduksjon til Doom Doom-serien stammer fra 90-tallet etter utgivelsen av den originale Doom. Det ble en øyeblikkelig suksess, og fra den tiden og u...
Vulkan for Linux-brukere
Med hver nye generasjon grafikkort ser vi spillutviklere skyve grensene for grafisk troskap og komme et skritt nærmere fotorealisme. Men til tross for...
OpenTTD vs Simutrans
Å lage din egen transportsimulering kan være morsom, avslappende og ekstremt fristende. Derfor må du sørge for at du prøver så mange spill som mulig f...