Bash scripting är ett av de mest populära, tillgängliga sätten att programmera din Linux-dator. Dessa enkla skriptexempel hjälper dig att förstå processen och introducera dig till grunderna i Bash-programmering.
Innehållsförteckning
1. Hur man skriver ut Hello World i Bash
Hello World-exemplet är ett utmärkt sätt att lära sig om vilket programmeringsspråk som helst, och Bash är inget undantag.
Så här skriver du ut ”Hello World” med Bash:
#!/bin/bash
Shebang-kommandot (#!/bin/bash) är viktigt eftersom skalet använder det för att bestämma hur skriptet ska köras. I det här fallet använder den Bash-tolken.
echo "Hello World"
chmod +x hello_world.sh
./hello_world.sh
2. Skapa en katalog genom att läsa indata
Från dina skript kan du köra alla program som du normalt kan köra på kommandoraden. Du kan till exempel skapa en ny katalog från ditt skript med kommandot mkdir.
#!/bin/bash
echo "Enter new directory name:"
read newdir
mkdir $newdir
3. Skapa en katalog med kommandoradsargument
Som ett alternativ till att läsa indata interaktivt, stöder de flesta Linux-kommandon argument. Du kan ange ett argument när du kör ett program för att kontrollera dess beteende.
I ditt skript kan du använda $1 för att referera till en speciell variabel som innehåller värdet av det första argumentet. $2 kommer att hänvisa till det andra argumentet, och så vidare.
#!/bin/bash
mkdir $1
./arg_dir.sh Test
Du kanske undrar vad som händer om du kör skriptet utan att ange ett argument alls. Prova och se; du bör få ett felmeddelande som startar ”användning: mkdir”:
Utan några kommandoradsargument kommer värdet på $1 att vara tomt. När ditt skript anropar mkdir kommer det inte att skicka ett argument till det, och kommandot mkdir returnerar det felet. För att undvika detta kan du själv kontrollera tillståndet och presentera ett mer vänligt fel:
#!/bin/bash
if ["$1" = ""]; then
echo "Please provide a new directory name as the first argument"
exit
fi
mkdir $1
När du kör den här nya versionen av skriptet får du ett meddelande om du glömmer att inkludera ett argument:
4. Ta bort en fil med en bash-funktion
Om du märker att du upprepar samma kod, överväg att slå in den i en funktion. Du kan sedan anropa den funktionen när du behöver.
Här är ett exempel på en funktion som tar bort en given fil.
#!/bin/bash
del_file() {
echo "deleting $1"
rm $1
}
Du kan sedan anropa funktionen och ge den namnet på en fil som ska raderas:
del_file test.txt
När du anropar en funktion kommer den att ställa in den speciella $? värde med utgångsstatus för det senaste kommandot det körs. Utgångsstatusen är användbar för felkontroll; i det här exemplet kan du testa om kommandot rm lyckades:
if [ $? -ne 0 ]; then
echo "Sorry, could not delete the file"
fi
5. Skapa en grundläggande kalkylator för aritmetiska beräkningar
Detta sista exempel visar en mycket grundläggande miniräknare. När du kör det anger du två värden och väljer sedan en aritmetisk operation att utföra på dem.
Här är koden för 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"
Notera användningen av case … esac som är Bashs motsvarighet till switch-satsen från andra språk. Det låter dig testa ett värde – i det här fallet valvariabeln – mot flera fasta värden och köra tillhörande kod.
Detta skript använder bc-kommandot för att utföra varje beräkning.