Bash-skripting er en av de mest populære, tilgjengelige måtene å programmere Linux-datamaskinen din på. Disse enkle skripteksemplene vil hjelpe deg å forstå prosessen og introdusere deg til det grunnleggende om Bash-programmering.
Innholdsfortegnelse
1. Slik skriver du ut Hello World i Bash
Hello World-eksemplet er en flott måte å lære om et hvilket som helst programmeringsspråk, og Bash er intet unntak.
Slik skriver du ut «Hello World» med Bash:
#!/bin/bash
Shebang-kommandoen (#!/bin/bash) er viktig siden skallet bruker den til å bestemme hvordan skriptet skal kjøres. I dette tilfellet bruker den Bash-tolken.
echo "Hello World"
chmod +x hello_world.sh
./hello_world.sh
2. Opprett en katalog ved å lese inndata
Fra skriptene dine kan du kjøre et hvilket som helst program som du vanligvis kjører på kommandolinjen. For eksempel kan du opprette en ny katalog fra skriptet ditt ved å bruke mkdir-kommandoen.
#!/bin/bash
echo "Enter new directory name:"
read newdir
mkdir $newdir
3. Opprett en katalog ved å bruke kommandolinjeargumenter
Som et alternativ til å lese input interaktivt, støtter de fleste Linux-kommandoer argumenter. Du kan gi et argument når du kjører et program for å kontrollere oppførselen.
I skriptet ditt kan du bruke $1 for å referere til en spesiell variabel som inneholder verdien til det første argumentet. $2 vil referere til det andre argumentet, og så videre.
#!/bin/bash
mkdir $1
./arg_dir.sh Test
Du lurer kanskje på hva som skjer hvis du kjører skriptet uten å oppgi et argument i det hele tatt. Prøv det og se; du skal motta en feilmelding som starter «bruk: mkdir»:
Uten noen kommandolinjeargumenter vil verdien av $1 være tom. Når skriptet ditt kaller mkdir, vil det ikke sende et argument til det, og mkdir-kommandoen vil returnere den feilen. For å unngå dette kan du se etter tilstanden selv og presentere en mer vennligsinnet feil:
#!/bin/bash
if ["$1" = ""]; then
echo "Please provide a new directory name as the first argument"
exit
fi
mkdir $1
Når du kjører denne nye versjonen av skriptet, får du en melding hvis du glemmer å inkludere et argument:
4. Slett en fil ved hjelp av en bash-funksjon
Hvis du finner deg selv å gjenta den samme koden, bør du vurdere å pakke den inn i en funksjon. Du kan da ringe den funksjonen når du trenger det.
Her er et eksempel på en funksjon som sletter en gitt fil.
#!/bin/bash
del_file() {
echo "deleting $1"
rm $1
}
Du kan deretter kalle funksjonen og gi den navnet på en fil som skal slettes:
del_file test.txt
Når du kaller en funksjon, vil den sette den spesielle $? verdi med utgangsstatusen til den siste kommandoen den kjører. Utgangsstatusen er nyttig for feilkontroll; i dette eksemplet kan du teste om rm-kommandoen lyktes:
if [ $? -ne 0 ]; then
echo "Sorry, could not delete the file"
fi
5. Lag en grunnleggende kalkulator for aritmetiske beregninger
Dette siste eksemplet demonstrerer en veldig enkel kalkulator. Når du kjører den, skriver du inn to verdier, og velger deretter en aritmetisk operasjon å utføre på dem.
Her er koden for calc.sh:
#!/bin/bash
echo "Enter first number: "
read aecho "Enter second number: "
read b
echo "Enter Arithmetic Operation Choice :"
echo "1. Addition"
echo "2. Subtraction"
echo "3. Multiplication"
echo "4. Division"
read choice
case $choice in
1)
result=`echo $a + $b | bc`
;;2)
result=`echo $a - $b | bc`
;;3)
result=`echo $a \* $b | bc`
;;4)
result=`echo "scale=2; $a / $b" | bc`
;;
esacecho "Result: $result"
Legg merke til bruken av kasus … esac som er Bashs ekvivalent av switch-setningen fra andre språk. Den lar deg teste en verdi – i dette tilfellet valgvariabelen – mot flere faste verdier og kjøre tilhørende kode.
Dette skriptet bruker bc-kommandoen til å utføre hver beregning.