Innan vi börjar skriva Bash-skripter är det en god idé att skapa en specifik katalogstruktur för att hålla ordning på våra filer, till exempel /home/ditt_användarnamn/scripts
. Genom att samla alla skript i denna katalog kan du snabbt hitta, redigera och köra dem utan att behöva leta bland andra filer. Att organisera skripten på detta sätt är en enkel men effektiv vana som gör arbetet mer överskådligt och hjälper dig att utveckla goda rutiner redan från början.
Mitt första bash-skript
- Öppna en editor, till exempel gedit:
-
gedit hello.sh
-
- Om gedit inte hittas betyder att den behöver installeras, kör:
-
sudo apt-get install gedit
-
- I editorn skriv följande rader:
- #!/bin/bash
- echo ”Vad heter du?”
- read name
- echo ”Hej, $name! Välkommen till systemet.”
- Spara skriptet i rätt katalog, till exempel
/home/ditt_användarnamn/scripts
, så att du enkelt kan hitta det. Om du startade Gedit från denna katalog sparas filen automatiskt där, vilket gör det lättare att organisera och hitta dina skript.
Obs: Den första raden i skriptet anger för systemet vilken tolk (shell) som ska användas för att köra skriptet.
Nu ska du göra ditt skript körbart genom att exekvera följande kommando:
chmod +x hello.sh
Nu får du köra ditt skript på två olika sätt:
- genom att ange hela sökvägen: /home/ditt_användarnamn/scripts/hello.se
- genom att ange på prompten (förutsätter att skriptet finns i den aktuella katalogen): ./skriptetsnamn
Variabel $PATH
För att kunna köra ett skript utan att ange sökvägen (t.ex., bara genom att skriva hello.sh
istället för ./hello.sh
), kan du lägga till katalogen där skriptet finns till $PATH
för den aktuella sessionen:
PATH=$PATH:/home/chalo/scripts
eller
export PATH=$PATH:~/scripts
Denna ändring gäller dock bara för den pågående sessionen. För att lägga till sökvägen permanent i $PATH
, kan du redigera filen .profile
i ditt hemkatalog. Lägg till följande rad längst ned i filen:
export PATH=$PATH:/home/ditt_användarnamn/scripts
Därefter ska du spara och stänga filen. För att ladda om filen .profile kör:
source ~/.profile
Nu har sökvägen inkluderats automatiskt, så att du kan köra dina skript direkt utan att ange hela sökvägen.
Exempel 1: Räkna ner från 5 till 1
#!/bin/bash
for i in {5..1}; do
echo ”$i”
done
for i in {5..1}
skapar en loop som går från 5 till 1.echo "$i"
skriver ut varje tal.
Det kan också skrivas så här:
for i in $(seq 5 -1 1); do
echo ”$i” done
Exempel 2: Enkel räknare
#!/bin/bash
echo ”Ange ett nummer:”
read num
echo ”Resultat: $((num + 10))”
read num
tar emot ett nummer från användaren.$((num + 10))
utför en enkel beräkning (adderar 10 till det inmatade numret) och skriver ut resultatet.
Exempel 3: Visa dagens datum och tid
#!/bin/bash
echo ”Dagens datum och tid är:”
date
date
skriver ut aktuell datum och tid.
Exempel 4: Kontrollera om en fil finns
#!/bin/bash
echo ”Ange filnamn:”
read filename
if [ -f ”$filename” ]; then
echo ”Filen $filename finns.”
else
echo ”Filen $filename finns inte.”
fi
if [ -f "$filename" ]
kontrollerar om filen existerar.echo
skriver ut om filen finns eller inte.
Exempel 5: Diskanvändningskontroll
#!/bin/bash
disk_usage=$(df -h / | grep / | awk ’{print $5}’)
echo ”Diskanvändning: $disk_usage”
usage=$(echo $disk_usage | sed ’s/%//’)
if [ $usage -gt 80 ]; then
echo ”Varning: Diskanvändning är över 80%!”
else
echo ”Diskanvändningen är inom gränserna.”
fi
df -h /
visar diskanvändning för root (/
).awk '{print $5}'
extraherar procentvärdet.sed 's/%//'
tar bort%
-tecknet.- Kontrollerar om diskanvändningen överstiger 80%.
exempel till ?