Bash-scripting er en af de mest populære, tilgængelige måder at programmere din Linux-computer på. Disse enkle script-eksempler hjælper dig med at forstå processen og introducere dig til det grundlæggende i Bash-programmering.
Indholdsfortegnelse
1. Sådan udskriver du Hello World i Bash
Hello World-eksemplet er en fantastisk måde at lære om ethvert programmeringssprog, og Bash er ingen undtagelse.
Sådan udskriver du “Hello World” ved hjælp af Bash:
#!/bin/bash
Shebang-kommandoen (#!/bin/bash) er vigtig, da skallen bruger den til at bestemme, hvordan scriptet skal køres. I dette tilfælde bruger den Bash-tolken.
echo "Hello World"
chmod +x hello_world.sh
./hello_world.sh
2. Opret en mappe ved at læse input
Fra dine scripts kan du køre ethvert program, som du normalt kører på kommandolinjen. For eksempel kan du oprette en ny mappe fra dit script ved at bruge mkdir-kommandoen.
#!/bin/bash
echo "Enter new directory name:"
read newdir
mkdir $newdir
3. Opret en mappe ved hjælp af kommandolinjeargumenter
Som et alternativ til at læse input interaktivt, understøtter de fleste Linux-kommandoer argumenter. Du kan levere et argument, når du kører et program, for at kontrollere dets adfærd.
I dit script kan du bruge $1 til at henvise til en speciel variabel, der indeholder værdien af det første argument. $2 vil referere til det andet argument, og så videre.
#!/bin/bash
mkdir $1
./arg_dir.sh Test
Du undrer dig måske over, hvad der sker, hvis du kører scriptet uden overhovedet at give et argument. Prøv det og se; du skulle modtage en fejlmeddelelse, der starter “brug: mkdir”:
Uden kommandolinjeargumenter vil værdien af $1 være tom. Når dit script kalder mkdir, vil det ikke sende et argument til det, og mkdir-kommandoen vil returnere denne fejl. For at undgå dette kan du selv tjekke for tilstanden og præsentere en mere venlig fejl:
#!/bin/bash
if ["$1" = ""]; then
echo "Please provide a new directory name as the first argument"
exit
fi
mkdir $1
Når du kører denne nye version af scriptet, får du en besked, hvis du glemmer at inkludere et argument:
4. Slet en fil ved hjælp af en bash-funktion
Hvis du finder dig selv at gentage den samme kode, kan du overveje at pakke den ind i en funktion. Du kan derefter kalde den funktion, når du har brug for det.
Her er et eksempel på en funktion, der sletter en given fil.
#!/bin/bash
del_file() {
echo "deleting $1"
rm $1
}
Du kan derefter kalde funktionen og give den navnet på en fil, der skal slettes:
del_file test.txt
Når du kalder en funktion, vil den sætte den særlige $? værdi med afslutningsstatus for den sidste kommando, den kører. Udgangsstatussen er nyttig til fejlkontrol; i dette eksempel kan du teste, om rm-kommandoen lykkedes:
if [ $? -ne 0 ]; then
echo "Sorry, could not delete the file"
fi
5. Opret en grundlæggende regnemaskine til aritmetiske beregninger
Dette sidste eksempel demonstrerer en meget grundlæggende lommeregner. Når du kører det, skal du indtaste to værdier og derefter vælge en aritmetisk operation at udføre på dem.
Her er koden til 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"
Bemærk brugen af kasus … esac, som er Bashs ækvivalent til switch-sætningen fra andre sprog. Det lader dig teste en værdi – i dette tilfælde valgvariablen – mod flere faste værdier og køre tilhørende kode.
Dette script bruger bc-kommandoen til at udføre hver beregning.