Nybörjarguide

Bash Scripting Tutorial för nybörjare

Bash Scripting Tutorial för nybörjare

Om du börjar med Linux-system, villkor som “Shell-skript” eller “Bash-skript”Kan vara ganska vanligt - men vad menar de? Innan vi kommer in i detaljer kan lärande av Bash-skript hjälpa dig att spara tid på att utföra och utföra olika systemuppgifter och förstå Linux-kommandoraden (Terminal) bättre och automatisera flera systemuppgifter.

Vad är Bash?

Bash, en förkortning för “Bourne-Again-Shell,” är ett Unix-skal eller kommandospråkstolk för GNU-operativsystemet. Det har varit huvudskalet för Linux-distributioner och Apple macOS-utgåvor innan macOS Catalina. Bash är också tillgängligt för Windows 10 via Windows-delsystemet för Linux.

Bash körs vanligtvis i ett textfönster, allmänt känt som Terminal, där användare skriver in kommandon för att utföra olika uppgifter. Bash kan också utföra kommandon skrivna i en fil, en metod som kallas “Bash scripting.”

Skillnad mellan Bash-skript och Shell Scripting

Shell-skript och Bash-skript är inte samma saker. Med Bash-skript använder du uttryckligen bash-skalet. Å andra sidan kan Shell-skript vara ett ganska brett ord eftersom vi har andra skal tillgängliga än Bash. Några av de vanligaste inkluderar Korn (ksh), C-skal (csh), Z-skal (zsh) och Bash-skal (sh). Det skulle dock inte vara en överraskning att hitta människor som använder bash-scripting och shell-scripting omväxlande för att betyda samma sak. Vårt inlägg på Top 6 Open Source Shells för Linux ger en detaljerad beskrivning av dessa skal.

I det här inlägget kommer vi att titta på Bash-skript. Som standard använder många tillgängliga Linux-distributioner Bash-skalet. Kolla in vårt inlägg om de 6 bästa Linux-distributionerna för nybörjare. För att bekräfta skalet du använder på din nuvarande Linux-distribution, kör du kommandot på terminalen.

eko $ SHELL

skal

Från bilden ovan kan du se standardtolk i mitt system är bash. För närvarande kör jag Ubuntu 20.04 LTS. Låt oss dyka in!

Förstå Bash-skript

Bash-skript är textfiler som innehåller bash-kommandon som körs för att utföra olika uppgifter. För att skriva dessa skript behöver du bara en enkel textredigerare som gedit, leaf pad, vim, nano och mycket mer. Kom ihåg att spara dina skript med en .sh tillägg och som vanlig text och inte rik text. En av mina favoritredigerare som jag använder för att skriva manus är nano-redigeraren.

Namnge, tilldela behörigheter och utföra ett Bash-skript

Som förklarats ovan, se till att använda .sh-förlängning för dina bash-skript. Du kan till exempel ha ett skript med namnet fosslinux_backup.sh. Det vore dock bäst om du var försiktig med att namnge dina skript. Till exempel vill de flesta spara de flesta av sina skript som “test.”Okänt för de flesta, det finns ett Unix-inbyggt kommando som heter test, som kontrollerar filtyper och jämför värden. Du kan använda kommandot vilket för att kontrollera om det finns ett program med samma namn som ditt skript för att förhindra eventuella programkonflikter.

vilken [kommando] e.g vilket test

Vilket kommando

Från produktionen ovan kan vi se att testet redan är ett inbyggt kommando. Därför, för att undvika konflikter mellan program, kommer jag inte att namnge några av mina skript som "testa.”

För att göra skriptet körbart för alla användare, använd kommandot nedan:

chmod + x [skript.sh]

För att göra skriptet körbart för den aktuella användaren, använd kommandot nedan:

chmod u + x [skript.sh]

Kör kommandot nedan för att köra skriptet:

./ [skriptnamn]

Med ovanstående metod kommer du att inse att du kommer att behöva använda CD kommando för att flytta till katalogen som innehåller skriptet eller skicka sökvägen till skriptet. Det finns dock en lösning på detta. Spara dina skript i soptunna katalog i hemkatalogen.

Med senaste uppdateringar kommer de flesta distributioner inte med soptunna mapp som standard. Du måste därför skapa den manuellt. Genom att placera dina skript i den här mappen kan du köra skriptet genom att skriva dess namn på terminalen utan att använda CD och ./ kommandon.

Riktlinjer för Bash Scripting

Innan du skriver ditt första manus finns det några riktlinjer som du behöver förstå när du skriver manus.

De #!/ bin / bash (Hash-Bang Hack) uttalande är vägen till skalet vi kommer att använda. Om du använder ett annat skal måste du redigera den här sökvägen. Vi förstår att alla kommentarer börjar med # symbol. Men när de följs med en (!) märke i Hash-Bang Hack, tvingas manuset att köras med skalet pekat på av den här raden. I vårt fall är det Bash-skalet.

Ditt första Bash-skript

Som de flesta programmeringsspråk kommer vi att skriva ett manus som skriver ut "Hej världen" uttalande när det körs. Öppna din favorittextredigerare och klistra in kommandona nedan. Spara textfilen som fossHelloWorld.sh eller något annat namn som inte är ett inbyggt kommando.

#!/ bin / bash #Detta skript kommer att skriva ut 'Hello World' på Terminal echo "Hello World"

När du har sparat filen, gör den körbar genom att utföra kommandot nedan:

chmod + x fossHelloWorld.sh

Kör det nu med kommandot nedan:

./ fossHelloWorld.sh

Första manuset

Skriptet ovan har bara tre rader. Den första är Hash-Bang Hack, som vi har diskuterat ovan, den andra är en kommentar, och den tredje är kommandot som kommer att utföras. Obs! Kommentarer körs aldrig.

Låt oss titta på andra bash-skriptfunktioner som du kan använda.

Ekokommandot

Echo-kommandot används för att skriva ut utdata på Linux-kommandoraden eller Terminal. Om du är utvecklare och har arbetat med PHP tidigare måste du ha stött på det här kommandot också. Låt oss skriva ett litet bash-skript för att visa hur det här kommandot fungerar.

#!/ bin / bash # Låt oss skriva ut första raden eko "Detta är Fosslinux.com - Med en ny rad "# Låt oss skriva ut andra uttalandet utan en ny rad echo -n" Detta är Fosslinux - Ingen ny rad "

Spara ditt skript, tilldela de behörigheter som krävs och kör det.

Bash Echo

För att förstå koden skriver det första ekokommandot ut ett uttalande och går till nästa rad. Det andra ekokommandot har -n argument som hindrar skriptet från att gå till nästa rad. Du kan använda många andra alternativ med Echo-kommandot, inklusive variabler, som vi kommer att se nedan.

Variabler

Variabler är en vanlig och nödvändig del av alla programmeringsspråk. Man kan förklara Bash-variabler på flera sätt. När du tilldelar ett värde till en variabel behöver du inte använda några symboler. Men när du anropar variabelns värde måste du använda $ underteckna i variabelns början.

Du kan använda variabler i terminalen eller som skript. Utför kommandona nedan på din terminal.

myWebsite = "Fosslinux.com "echo $ myWebsite

Använda variabler på terminalen

Låt oss nu skapa ett bash-skript som tar två ingångar från användaren och lagrar dem i variabler $ x och $ y. Skriptet kontrollerar sedan om de två värdena är lika eller inte.

#!/ bin / bash echo "Ange det första numret" läs ett echo "Ange det andra numret" läs b om [[$ a -eq $ b]] sedan echo "Numren är lika" annars echo "Numren är inte lika" fi

Spara skriptet och kör det. Från bilden nedan kan du se att vi har angett olika värden, och manuset kunde kontrollera om de är lika eller inte.

Bash-variabler

Låt oss nu titta närmare på koden. De två första ekouttalandena uppmanar användaren att mata in första och andra siffrorna. De läsa kommandot väntar på att användaren ska ange ett nummer och lagra det till den angivna variabeln. I vårt fall är det a och b. Vi har sedan ett if-uttalande som kontrollerar om de två värdena är lika eller inte.

Villkorligt uttalande

I vilket programmeringsspråk som helst reglerar villkorliga uttalanden flödet av ett program. En kod kommer endast att köras när ett visst villkor är uppfyllt. Några av de vanligaste villkorliga uttalandena inkluderar "if-then-else" och "case.”Nedan är den grundläggande syntaxen för if-then-else-uttalandet.

om [[villkor]] då  annan  fi

Ta en titt på skriptet nedan, som använder villkorsuttrycket ”om-då-annars”.

#!/ bin / bash echo "Ange din ålder" läs ålder om ((ålder> 18)) sedan echo "Du kan gå till festen" annars echo "Du är inte berättigad att gå till festen" fi

Bash villkorliga uttalanden

Låt oss gå igenom skriptet ovan. Vi har eko uttalande som uppmanar användare att ange sitt åldersnummer. De läsa uttalande lagrar den angivna åldern till en variabel “ålder.”Vi har då ett villkorligt uttalande om så då som kontrollerar om åldern är högre än 18 år innan användaren instrueras.

Öglor

Slingor används vanligtvis när du vill köra en kod kod flera gånger. Till exempel, om jag ville echo 1000 rader i uttalandet "Välkommen till Fosslinux", skulle jag kräva 1000 echo-uttalanden. Men med öglor är allt jag behöver göra att ange hur många gånger jag vill att uttalandet ska återges eller skrivas ut på terminalen. Bash stöder tre typer av öglor; För Loop, While Loop och Till Loop. Låt oss titta på var och en av dem.

A For Loop används för att iterera genom en lista med specificerad data eller en matris. Nedan är den grundläggande syntaxen för Bash For Loop;

för värde i 1 2 3 4 5 ... N gör instruktion1 instruktion2 instruktion-N klar

eller,

för VALUE i fil1 fil2 fil3 gör instruktion1 på $ VALUE instruktion2 instruktion-N klar

Ta en titt på skriptet nedan. Det går igenom de angivna veckodagarna och skriver ut dem på Terminal rad för rad.

#Läs ett veckodagsnamn i varje iteration av slingan för dag på måndag tisdag onsdag torsdag fredag ​​lördag söndag gör echo "$ dag" gjort

Låt oss spara skriptet som ForLoop.sh och utför det. Nedan följer en skärmdump av utdata.

För Loop

Det är bara ett enkelt exempel på vad du kan göra med For Loop. Du kan också kombinera det med villkorliga uttalanden för att slutföra en viss uppgift.

While Loop utför en viss uppgift medan ett visst villkor förblir sant. I varje iteration kommer slingan först att kontrollera tillståndet innan instruktionerna utförs. När villkoret är Falsk avslutas slingan. Den grundläggande syntaxen för bash While-slingan är som följer:

medan [CONDITION] gör [COMMANDS] gjort

Till exempel kan vi ha ett skript som kommer att skriva ut uttalandet “Välkommen till FOSSLINUX.COM ” 20 gånger tills en variabel X är inställd på 20. Låt oss försöka implementera det praktiskt. Ta en titt på skriptet nedan.

#!/ bin / bash x = 1 medan [$ x -le 20] ekar "Välkommen till FOSSLINUX.COM "x = $ (($ x + 1)) klar

Låt oss spara skriptet som WhileLoop.sh och utför det. Nedan följer en skärmdump av utdata.

While Loop

Låt oss ta en titt på While Loop-skriptet ovan. Vi deklarerar först en variabel X som ger värdet 1. Vi skapar sedan ett While-uttalande som sänder uttalandet ”Välkommen till FOSSLINUX.COM ”medan X är mindre än 20. Slutligen ökar vi X efter en efter varje iteration.

Bash tills slingor används för att utföra en uppsättning instruktioner eller kommandon så länge det inställda tillståndet utvärderas till falskt. Nedan är den grundläggande syntaxen för Till Loop.

tills [VILLKOR] gör [INSTARUKTIONER / KOMMANDO] gjort

På samma sätt som While Loop utvärderar Till Loop först det inställda tillståndet innan instruktionerna eller kommandona utförs. Om villkoret utvärderas till falskt utförs instruktioner. Slingan avslutas när villkoret utvärderas till sant. Ta en titt på exemplet nedan.

#!/ bin / bash count = 0 tills [$ count -gt 5] do echo Counter: $ count ((count ++)) done

När vi har sparat och kört skriptet ovan får vi utdata nedan:

Fram till Loop

Skripten ovan skapar först ett variabeltal och sätter det till noll (0). Det är villkoret som styr flödet av vårt program. Till Loop kontrollerar om räknevärdet är större än 5. Om den inte är det kommer den att skriva ut de instruktioner som du har skickat. Men om värdet är större än 5 avslutas slingan omedelbart. Slutligen ökar vi räknevärdet med 1 (count ++).

Bash-funktioner

I programmering och skript används funktioner för att hålla en återanvändbar kod som behövs för att utföra en viss uppgift. Därför, om du har liknande kommandon som du vill utföra på olika delar i ditt skript, behöver du inte skriva dessa kommandon upprepade gånger. Stäng dem i en funktion och kör istället funktionen.
Nedan är den grundläggande syntaxen för Bash-funktionen.

funktionsnamn ()    

eller,

funktionsfunktionsnamn    

Låt oss skapa ett enkelt skript som använder funktioner. Vi skapar först en funktion som kallas "myFunction", som sänder uttalandet "Hej, jag är den första funktionen" när den anropas. Den andra funktionen, "myCities", är lite avancerad eftersom det tar argument över. Argumenten ges efter att ha kallat funktionsnamnet. De är tillgängliga i funktionen som $ 1.

#!/ bin / bash myFunction () echo "Hej Jag är den första funktionen" echo "Hej Jag är den första funktionen" echo echo "Detta är den andra funktionen" funktion myCities () echo Hello $ 1 myFunction myCities Washington, D.C myCities Phoenix

Efter att ha sparat och kört skriptet får vi utdata nedan.

Funktioner

Bash-menyer

När du skriver ett manus för att utföra en avancerad uppgift kan du behöva användaren att välja ett enda alternativ från flera alternativ som visas i terminalen. För att uppnå det kommer vi att använda bash Välj kommando.

Det skapar ett enkelt menyskript som uppmanar användarna att välja sina favorit Linux-distributioner från en lista. Ta en titt på skriptet nedan.

#!/ bin / bash #Print meddelande för användaren echo "Välj din favorit Linux distribution" välj distro i Ubuntu Fedora OpenSUSE DeepIN Parrot ArchLinux Kali gör # Skriv ut det valda värdet om [[$ distro == "Exit"]] och avsluta sedan 0 annat echo "Vald Linux-distribution är $ distro" klar

Låt oss spara skriptet som meny.sh och kör det. Vi får resultatet nedan.

Bash-menyer

I skriptet ovan har vi en lista över Seven Linux-distribution från användaren som väljer en. När de har gjort ett val lagras det i variabeln distro och senare skrivs ut genom att sammanfoga den med strängen “Vald Linux-distribution är.” Bash select-menyer kan vara ganska användbara, speciellt när du har flera skript som utför olika uppgifter, och man måste välja det de vill utföra.

Aritmetisk

Varje programmeringsspråk stöder utförandet av aritmetiska operationer, och bash-skript är inget undantag. Hur vi gör aritmetiska operationer är dock lite annorlunda. Nedan följer ett av sätten du kan utföra aritmetiska operationer i bash. Vi kommer att titta på fyra typer av aritmetiska operationer - Summa, division och multiplikation.

#!/ bin / bash # Beräkna summaresultatet = $ ((70 + 15)) # Skriv ut sumvärdet eko "sum = $ resultat" # Beräkna divisionsresultatet = $ ((100/25)) # Skriv ut divisionsvärde eko "division = $ resultat "#Calculate Multiplication result = $ ((15 * 15)) echo" Multiplication = $ result "

Låt oss spara ovanstående skript som aritmetik.sh och kör det. Vi får resultatet nedan.

Aritmetisk

Slutsats

Det är en komplett nybörjarguide för att komma igång med Bash-skript. Det finns dock mer i Bash än vad som beskrivs i denna handledning. En av de platser som jag skulle rekommendera för att utveckla dina färdigheter är GNU: s Bash Reference Manual. Om du står inför några problem eller kommenterar det här inlägget är du välkommen att slå kommentarerna nedan.

Hur du fångar och strömmar din spelsession på Linux
Tidigare betraktades spel bara som en hobby, men med tiden såg spelindustrin en enorm tillväxt när det gäller teknik och antalet spelare. Spelpubliken...
Bästa spel att spela med handspårning
Oculus Quest introducerade nyligen den fantastiska idén om handspårning utan kontroller. Med ett ständigt ökande antal spel och aktiviteter som utför ...
Hur man visar OSD-överlägg i helskärms Linux-appar och -spel
Att spela helskärmsspel eller använda appar i distraktionsfritt helskärmsläge kan avskärma dig från relevant systeminformation som syns i en panel ell...