Bash-skript kommer godt med for å automatisere oppgaver, og du vil finne at de er flotte for å bygge enkle kommandolinjeapplikasjoner. Bash-skallet tolker Bash-skript, så du trenger ikke å installere noen avhengigheter for å skrive og kjøre dem. Bash-skript er også bærbare siden de fleste Unix-baserte operativsystemer bruker samme shell-tolk.

Kunnskap om Bash-skripting er et must for enhver utviklere, spesielt hvis du jobber med Unix-baserte systemer.

Variabler i Bash

Bash-variabler er store og små bokstaver. For å deklarere variabler, bruk et likhetstegn (=) med navnet til venstre og verdien til høyre:

STATE=Washington

Verdien denne erklæringen tilskriver STAT er et enkelt ord. Hvis du trenger mellomrom i verdien, bruk anførselstegn rundt det:

STATE="North Arizona"

Du må bruke et dollartegn ($) prefiks til referansevariabler i andre variabler eller utsagn:

STATE=Washington
LOCATION="Min plassering er $STATE"

Utskriftsverdier i Bash

Det er flere måter du kan skrive ut variabler i Bash. Du kan bruke ekko kommando for grunnleggende utgang eller C-stil printf kommando for strengformatering.

instagram viewer
STATE=Washington
LOCATION="Min plassering er $STATE"
ekko$LOCATION

Etter å ha erklært STAT variabel, definerer dette skriptet PLASSERING ved å referere til STATE. If bruker deretter ekko for å skrive ut den endelige verdien av LOCATION-variabelen.

De printf nøkkelord lar deg bruke formateringsverb for å skrive ut data. Strengeformateringsverbene ligner de i C og Go, men med begrensede verb.

Verb Funksjonalitet
%c skriver ut enkelttegn
%o skriver ut oktadesimaler
%s skriver ut strenger, uavhengig av hylster
%x skriver ut små heksadesimale bokstaver
%X skriver ut store heksadesimale bokstaver
%d skriver ut heltall
%e skriver ut vitenskapelige forestillinger med små bokstaver
%E skriver ut vitenskapelige forestillinger med store bokstaver
%f skriver ut flyttall
%% skriver ut et enkelt prosentsymbol.

Her er et eksempel på bruk av et verb med skrive ut nøkkelord.

STATE=Lagos
printf "Min plassering er %s" $STATE

De printf funksjonen vil erstatte STAT variabel i posisjonen til %s verb, og utgangen vil være "My Location is Lagos".

Du kan lage kommentarer i Bash med hashen eller pund (#) symbol. Skallet ignorerer automatisk kommentarer.

#!/bin/bash
# STATE=Washington
# LOCATION="Min plassering er $STATE"

Det er ingen kommentarer med flere linjer. De fleste IDE-er og tekstredigerere lar deg kommentere med snarveien Ctrl/Command + skråstrek(/). Du bør kunne bruke snarveien til å lage flere enkeltlinjekommentarer.

Mottar brukerinndata i Bash

Som mange andre programmeringsspråk kan du motta brukerinndata i Bash for å gjøre programmene/skriptene dine mer interaktive. Du kan bruke lese kommando for å be om brukerens inndata.

lese respons

I dette tilfellet respons variabelen vil holde brukerens input ved levering.

ekko "Hva vil du?:"
les svar
ekko $respons

Forespørselen om brukerinndata vil være på en ny linje i eksemplet ovenfor.

Du kan legge til -n flagg til ekko print statement for å beholde linjen der brukeren skriver inn.

echo -n "Hva vil du."
les svar
ekko $respons

Erklærer Arrays i Bash

Arrays i Bash er akkurat som de fleste språk. Du kan erklære en matrisevariabel i Bash ved å spesifisere elementene i parentes.

Land=('USA' 'Russland' 'Ukraina', "England", "Taiwan", "Kina")

Å få tilgang til en matrise via referanse til variabelnavnet vil hente det første elementet. Du kan få tilgang til hele matrisen ved å bruke stjernetegnet som indeks.

echo ${Countries[*]}

Du kan også spesifisere indeksen til matrisen for å få tilgang til et spesifikt element. Indeksen til en matrise starter på null.

ekko "${Countries[4]}"

Betingede erklæringer i Bash

Bash gir betingelser for beslutningstaking i programmer.

Her er anatomien til en if-else-utsagn i Bash. Du må bruke semikolon for å angi slutten av betingelsen.

hvis [[ tilstand ]]; deretter
ekko uttalelse 1
elif [[tilstand ]]; deretter
ekko uttalelse 2
ellers [[tilstand ]]; deretter
ekko uttalelse 3
fi

Du må avslutte hver hvis uttalelse med fi nøkkelord.

hvis [ 1 == 2 ]; deretter
ekko en
elif [ 2 == 3 ]; deretter#eller hvis
ekko to
ellers [ 4 > 3 ];
ekko "riktig, 3"
fi

Du kan bruke kasussetninger i Bash-programmene dine ved å bruke sak nøkkelord. Du må spesifisere mønsteret etterfulgt av sluttparenteser før setningen.

CITY=Lagos
sak$CITYi
"Washington") # mønster
ekko "Amerikas forente stater" # uttalelse
;; # slutt på en sak
"Lagos" | "Abuja")
ekko "Nigeria"
;;
"Johannesburg" | "Cape Town")
ekko "Sør-Afrika"
;;
*) # standardmønster
ekko "Antarktis" # standardsetning
;;
esac# slutten av saksuttalelsen

Du kan definere standard store og små bokstaver ved å bruke stjernetegnet (*) som mønster. Saksuttalelser må avsluttes med esac nøkkelord.

Løkker i Bash

Avhengig av dine behov, kan du bruke en while-løkke, range for-loop eller en C-stil for loop for tilbakevendende operasjoner.

Her er et eksempel på C-stil for-loop. For-løkker må slutte med ferdig nøkkelord, og du må avslutte for-setningen med et semikolon etterfulgt av gjøre nøkkelord.

til ((a = 0; a < 10; a+2)); gjøre
ekko$a
ferdig

Utvalget for loop kommer godt med for arbeid med filer og mange andre operasjoner. Du må bruke i nøkkelord med området for-loop.

til Jeg i {1..7}; gjøre
ekko$1
ferdig

Her er en enkel uendelig løkke for å demonstrere Bash samtidig som løkker i aksjon.

navn=1
samtidig som [ 1 - le 5 ] # mens 1 < 5
gjøre
ekko$navn
ferdig

De -le i betingelsessetningen er den binære operatoren for mindre enn.

Funksjoner i Bash

Du trenger ikke nøkkelord for å deklarere funksjoner i Bash. Du kan deklarere funksjoner med navnet og deretter parenteser foran funksjonens kropp.

print_working_directory() {
ekko$PWD#ringer PWD-kommandoen fra skriptet
}
ekko "Du er i $(print_working_directory)"

Funksjoner kan returnere variabler i Bash. Alt du trenger er komme tilbake nøkkelord.

print_working_directory() {
komme tilbake$PWD
}

De print_working_directory funksjonen returnerer arbeidskatalogen til filen.

Du kan skrive Shell-skript på andre språk

Bash er ikke det eneste språket du kan bruke til å samhandle med operativsystemets skall eller bygge kommandolinjeapplikasjoner. Du kan bruke mange andre språk som Go, Python, Ruby og Rust.

Mange operativsystemer har Python3 forhåndsinstallert, og Python er et utbredt språk. Hvis du trenger enda mer funksjonalitet enn Bash-skript kan tilby, bør du vurdere å bruke Python.