Beginners gids

Bash Scripting-zelfstudie voor beginners

Bash Scripting-zelfstudie voor beginners

Als je aan de slag gaat met Linux-systemen, gebruik dan termen als "Shell-scripting" of "Bash-scripting"' kan heel gewoon zijn - Maar wat betekenen ze?? Voordat we in details treden, kan het leren van Bash-scripting je helpen tijd te besparen bij het uitvoeren en uitvoeren van verschillende systeemtaken en de Linux-opdrachtregel (Terminal) beter te begrijpen en meerdere systeemtaken te automatiseren.

Wat is Bash?

Bash, een acroniem voor "Bourne-opnieuw-Shell," is een Unix shell- of commandotaalinterpreter voor het GNU-besturingssysteem. Het was de belangrijkste Shell voor Linux-distributies en Apple macOS-releases vóór macOS Catalina. Bash is ook beschikbaar voor Windows 10 via het Windows-subsysteem voor Linux.

Bash wordt meestal uitgevoerd in een tekstvenster dat algemeen bekend staat als de Terminal, waar gebruikers opdrachten invoeren om verschillende taken uit te voeren. Bash kan ook opdrachten uitvoeren die in een bestand zijn geschreven, een methode die wordt aangeduid als "bash-scripting".”

Verschil tussen Bash-scripting en Shell-scripting

Shell-scripting en Bash-scripting zijn niet dezelfde dingen. Met Bash-scripting gebruik je expliciet de bash-shell. Aan de andere kant kan Shell-scripting een vrij breed woord zijn, aangezien we andere shells hebben dan Bash. Enkele van de meest voorkomende zijn Korn (ksh), C-shell (csh), Z-shell (zsh) en de Bash-shell (sh). Het zou echter geen verrassing zijn om mensen te vinden die bash-scripting en shell-scripting door elkaar gebruiken om hetzelfde te betekenen. Onze post op Top 6 Open Source Shells voor Linux geeft een gedetailleerde beschrijving van deze shells.

In dit bericht zullen we kijken naar Bash-scripting. Standaard maken veel beschikbare Linux-distributies gebruik van de Bash-shell. Bekijk onze post over de 6 beste Linux-distributies voor beginners. Om de shell te bevestigen die u op uw huidige Linux-distributie gebruikt, voert u de opdracht uit op de Terminal.

echo $SHELL

schelp

In de bovenstaande afbeelding kun je zien dat de standaardinterpreter in mijn systeem bash is. Momenteel gebruik ik Ubuntu 20.04 LTS. Laten we erin duiken!

Bash-scripts begrijpen

Bash-scripts zijn tekstbestanden met bash-commando's die worden uitgevoerd om verschillende taken uit te voeren. Om deze scripts te schrijven, heb je alleen een eenvoudige teksteditor nodig, zoals gedit, leaf pad, vim, nano en nog veel meer. Vergeet niet om uw scripts op te slaan met a .sh extensie en als platte tekst en niet als rich text. Een van mijn favoriete editors die ik gebruik voor het schrijven van scripts is de nano-editor.

Naamgeving, machtigingen toewijzen en een Bash-script uitvoeren

Zoals hierboven uitgelegd, zorg ervoor dat u de .sh-extensie voor je bash-scripts. U kunt bijvoorbeeld een script hebben met de naam fosslinux_backup.sh. Het zou echter het beste zijn als u voorzichtig bent met het benoemen van uw scripts. De meeste mensen slaan bijvoorbeeld de meeste van hun scripts op als "test".Voor de meesten onbekend, is er een ingebouwde Unix-opdracht genaamd test, die bestandstypen controleert en waarden vergelijkt. U kunt het commando who gebruiken om te controleren of er een programma is met dezelfde naam als die van uw script om eventuele programmaconflicten te voorkomen.

welke [opdracht] e.g welke test?

Welk commando?

Uit de bovenstaande uitvoer kunnen we zien dat test al een ingebouwde opdracht is. Daarom, om conflicten tussen programma's te voorkomen, zal ik geen van mijn scripts een naam geven als "test.”

Gebruik de onderstaande opdracht om het script uitvoerbaar te maken voor elke gebruiker:

chmod +x [script.sh]

Gebruik de onderstaande opdracht om het script uitvoerbaar te maken voor de huidige gebruiker:

chmod u+x [script.sh]

Voer nu de onderstaande opdracht uit om het script uit te voeren:

./[scriptnaam]

Met de bovenstaande methode zult u zich realiseren dat u de CD commando om naar de map met het script te gaan of het pad naar het script door te geven. Hier is echter een oplossing voor. Bewaar je scripts in de bin directory aanwezig in de homedirectory.

Met recente updates komen de meeste distributies niet met de bin map standaard. U moet het daarom handmatig maken. Door uw scripts in deze map te plaatsen, kunt u het script uitvoeren door de naam op de Terminal te typen zonder de CD en ./ commando's.

Richtlijnen voor Bash Scripting

Voordat u uw eerste script schrijft, zijn er enkele richtlijnen die u moet begrijpen bij het schrijven van scripts.

De #!/bin/bash (Hash-Bang Hack) statement is het pad naar de shell die we zullen gebruiken. Als u een andere shell gebruikt, moet u dit pad bewerken. We begrijpen dat alle opmerkingen beginnen met de # symbool. Echter, wanneer gevolgd door een (!) markeer in de Hash-Bang Hack, het script wordt gedwongen om uit te voeren met de shell waarnaar deze regel verwijst. In ons geval is het de Bash-shell.

Je eerste bash-script

Zoals de meeste programmeertalen, zullen we een script schrijven dat de "Hallo Wereld" verklaring wanneer uitgevoerd. Open je favoriete teksteditor en plak de onderstaande commando's. Sla het tekstbestand op als fossHelloWorld.sh of een andere naam die geen ingebouwd commando is.

#!/bin/bash #Dit script drukt 'Hello World' af op de Terminal-echo 'Hello World'

Nadat u het bestand hebt opgeslagen, maakt u het uitvoerbaar door de onderstaande opdracht uit te voeren:

chmod +x fossHelloWorld.sh

Voer het nu uit met de onderstaande opdracht:

./fossHelloWorld.sh

eerste script

Het bovenstaande script heeft slechts drie regels. De eerste is de Hash-Bang Hack, die we hierboven hebben besproken, de tweede is een opmerking en de derde is de opdracht die zal worden uitgevoerd. Let op, opmerkingen worden nooit uitgevoerd.

Laten we eens kijken naar andere bash-scriptingfuncties die u kunt gebruiken.

Echo commando

De opdracht Echo wordt gebruikt om uitvoer af te drukken op de Linux-opdrachtregel of Terminal. Als je een ontwikkelaar bent en eerder met PHP hebt gewerkt, moet je deze opdracht ook zijn tegengekomen. Laten we een klein bash-script schrijven om te demonstreren hoe dit commando werkt.

#!/bin/bash #Laten we de echo van de eerste regel afdrukken 'Dit is Fosslinux'.com - Met een nieuwe regel" #Laten we de tweede instructie afdrukken zonder een nieuwe regel echo -n "This is Fosslinux - No new Line"

Sla uw script op, wijs de vereiste machtigingen toe en voer het uit.

bash echo

Om de code te begrijpen, drukt het eerste echo-commando een statement af en gaat naar de volgende regel. Het tweede echo-commando heeft de -nee argument dat voorkomt dat het script naar de volgende regel gaat. U kunt veel andere opties gebruiken met het Echo-commando, inclusief variabelen, zoals we hieronder zullen zien.

Variabelen

Variabelen zijn een algemeen en noodzakelijk onderdeel van elke programmeertaal. Men kan Bash-variabelen op verschillende manieren declareren. Wanneer u een waarde aan een variabele toewijst, hoeft u geen symbolen te gebruiken. Wanneer u echter de waarde van de variabele aanroept, moet u de gebruiken $ teken aan het begin van de variabele.

U kunt variabelen op de Terminal of als scripts gebruiken. Voer de onderstaande opdrachten uit op uw Terminal.

mijnWebsite = "Fosslinux.com" echo $mijnwebsite

Variabelen gebruiken op terminal

Laten we nu een bash-script maken dat twee invoer van de gebruiker nodig heeft en deze opslaat in variabelen $x en $y. Het script zal dan controleren of de twee waarden gelijk zijn of niet.

#!/bin/bash echo "Voer het eerste nummer in" lees een echo "Voer het tweede nummer in" lees b als [[ $a -eq $b ]] dan echo "Getallen zijn gelijk" else echo "Getallen zijn niet gelijk" fi

Sla het script op en voer het uit. In de onderstaande afbeelding kun je zien dat we verschillende waarden hebben ingevoerd en dat het script kon controleren of ze gelijk zijn of niet.

Bash-variabelen

Laten we nu de code eens nader bekijken. De eerste twee echo-instructies vragen de gebruiker om het eerste en tweede nummer in te voeren. De lezen commando wacht tot de gebruiker een nummer invoert en opslaat in de opgegeven variabele. In ons geval is dat een en b. We hebben dan een if-statement dat controleert of de twee waarden gelijk zijn of niet.

Voorwaardelijke verklaring

In elke programmeertaal bepalen voorwaardelijke instructies de stroom van een programma. Een stukje code wordt alleen uitgevoerd als aan een bepaalde voorwaarde is voldaan. Enkele van de meest voorkomende voorwaardelijke uitspraken zijn "als-dan-anders" en "case.” Hieronder staat de basissyntaxis van de if-then-else-instructie.

als [[ voorwaarde ]] dan  anders  fi

Bekijk het onderstaande script, dat gebruik maakt van de "if-then-else" voorwaardelijke instructie.

#!/bin/bash echo "Voer je leeftijd in" lees leeftijd als ((leeftijd > 18 )) dan echo "Je kunt naar het feest gaan" else echo "Je komt niet in aanmerking om naar het feest te gaan" fi

Voorwaardelijke verklaringen bash

Laten we het bovenstaande script doornemen. We hebben de echo verklaring waarin gebruikers worden gevraagd hun leeftijdsnummer in te voeren. De lezen statement slaat de ingevoerde leeftijd op in een variabele "leeftijd".We hebben dan een if-then-else voorwaardelijke verklaring die controleert of de leeftijd hoger is dan 18 voordat de gebruiker instructies geeft.

lussen

Loops worden vaak gebruikt als je een stuk code meerdere keren wilt uitvoeren. Als ik bijvoorbeeld 1000 regels van de verklaring "Welkom bij Fosslinux" zou willen herhalen, zou ik 1000 echo-instructies nodig hebben. Met lussen hoef ik echter alleen maar het aantal keren op te geven dat ik wil dat de instructie wordt herhaald of afgedrukt op de Terminal. Bash ondersteunt drie soorten loops; For Loop, While-lus en Tot-lus. Laten we naar elk van hen kijken.

Een For Loop wordt gebruikt om een ​​lijst met gespecificeerde gegevens of een array te doorlopen. Hieronder staat de basissyntaxis van de Bash For Loop;

voor Waarde in 1 2 3 4 5… N doe instructie1 instructie2 instructie-N gedaan

of,

voor VALUE in file1 file2 file3 doe instructie1 op $VALUE instructie2 instructie-N gedaan

Bekijk het onderstaande script. Het doorloopt de gegeven dagen van de week en drukt ze regel voor regel af op de Terminal.

#Lees een weekdagnaam in elke iteratie van de lus voor dag in Maandag Dinsdag Woensdag Donderdag Vrijdag Zaterdag Zondag doe echo "$day" gedaan

Laten we het script opslaan als For loop.sh en voer het uit. Hieronder is een screenshot van de output:.

For loop

Dat is maar een simpel voorbeeld van wat je kunt doen met de For Loop. Je kunt het ook combineren met voorwaardelijke instructies om een ​​bepaalde taak te voltooien.

De While Loop voert een specifieke taak uit terwijl een bepaalde voorwaarde True blijft. In elke iteratie controleert de lus eerst de voorwaarde voordat de instructies worden uitgevoerd. Als de voorwaarde False is, wordt de lus beëindigd. De basissyntaxis van de bash While-lus is als volgt:

terwijl [CONDITIE] [COMMANDO'S] doet

We kunnen bijvoorbeeld een script hebben dat de verklaring afdrukt “Welkom bij FOSSLINUX.COM” 20 keer totdat een variabele X is ingesteld op 20. Laten we proberen dat praktisch te implementeren. Bekijk het onderstaande script.

#!/bin/bash x=1 terwijl [ $x -le 20 ] echo "Welkom bij FOSSLINUX.COM" x=$(( $x + 1 )) klaar

Laten we het script opslaan als Herhalingslus.sh en voer het uit. Hieronder is een screenshot van de output:.

Herhalingslus

Laten we eens kijken naar het While Loop-script hierboven. We declareren eerst een variabele X en geven deze de waarde 1. Vervolgens maken we een While-instructie die de instructie "Welkom bij FOSSLINUX" uitvoert.COM” terwijl X kleiner is dan 20. Ten slotte verhogen we X met één na elke iteratie.

De Bash Until-lussen worden gebruikt om een ​​reeks instructies of opdrachten uit te voeren zolang de ingestelde voorwaarde onwaar is. Hieronder vindt u de basissyntaxis van de Until Loop.

totdat [CONDITIE] [INSTRUCTIES/COMMANDO'S] gedaan heeft

Net als bij de While-lus, evalueert de Until-lus eerst de ingestelde voorwaarde voordat de instructies of opdrachten worden uitgevoerd. Als de voorwaarde onwaar is, worden instructies uitgevoerd. De lus wordt beëindigd wanneer de voorwaarde wordt geëvalueerd als waar. Bekijk het onderstaande voorbeeld the.

#!/bin/bash count=0 tot [ $count -gt 5] do echo Teller: $count ((count++)) gedaan

Nadat we het bovenstaande script hebben opgeslagen en uitgevoerd, krijgen we de onderstaande uitvoer:

Tot lus

De bovenstaande scripts maken eerst een variabele telling en stellen deze in op nul (0). Dat is de voorwaarde die de stroom van ons programma regelt. De Tot Loop controleert of de telwaarde groter is dan 5. Als dit niet het geval is, worden de doorgegeven instructies afgedrukt. Als de waarde echter groter is dan 5, wordt de lus onmiddellijk beëindigd. Ten slotte verhogen we de telwaarde met 1 (count++).

Bash-functies

Bij het programmeren en scripten worden functies gebruikt om een ​​herbruikbaar stuk code te bewaren dat nodig is om een ​​bepaalde taak uit te voeren. Daarom, als u vergelijkbare opdrachten heeft die u op verschillende delen in uw script wilt uitvoeren, hoeft u deze opdrachten niet herhaaldelijk te schrijven. Omsluit ze in een functie en voer in plaats daarvan de functie uit.
Hieronder vindt u de basissyntaxis van de Bash-functie:.

functienaam ()    

of,

functie functienaam    

Laten we een eenvoudig script maken dat gebruikmaakt van functies. We maken eerst een functie genaamd "myFunction", die de verklaring "Hallo, ik ben de eerste functie" uitvoert wanneer deze wordt aangeroepen. De tweede functie, "myCities", is een beetje geavanceerd omdat er argumenten moeten worden doorgegeven. De argumenten worden gegeven na het aanroepen van de functienaam. Ze zijn toegankelijk in de functie als $1.

#!/bin/bash myFunction ()  echo "Hallo, ik ben de eerste functie" echo "Hallo, ik ben de eerste functie" echo  echo "Dit is de tweede functie" functie myCities ()  echo Hallo $1  myFunction myCities Washington,D.C myCities Phoenix

Na het opslaan en uitvoeren van het script, krijgen we de onderstaande uitvoer:.

Functies

Bash-menu's

Bij het schrijven van een script om een ​​geavanceerde taak uit te voeren, kan het nodig zijn dat de gebruiker een enkele optie selecteert uit verschillende opties die op de Terminal worden weergegeven. Om dat te bereiken, gebruiken we de bash selecteer opdracht.

Het creëert een eenvoudig menuscript dat de gebruikers zal vragen om hun favoriete Linux-distributies uit een lijst te selecteren. Bekijk hieronder het script.

#!/bin/bash #Print bericht voor de gebruiker echo "Selecteer uw favoriete Linux-distributie" selecteer distro in Ubuntu Fedora OpenSUSE DeepIN Parrot ArchLinux Kali do #Print de geselecteerde waarde als [[ $distro == "Exit" ]] en sluit 0 else af echo "Geselecteerde Linux-distributie is $distro" klaar

Laten we het script opslaan als menu.sh en voer het uit. We krijgen de output hieronder:.

Bash-menu's

In het bovenstaande script hebben we een lijst van Seven Linux-distributie waarvan de gebruiker er een zal selecteren. Nadat ze een selectie hebben gemaakt, wordt deze opgeslagen in de variabele distro en later afgedrukt door het samen te voegen met de tekenreeks “Geselecteerde Linux-distributie is.” Bash-selectiemenu's kunnen best handig zijn, vooral als je meerdere scripts hebt die verschillende taken uitvoeren, en je moet degene selecteren die ze willen uitvoeren.

Rekenkundig

Elke programmeertaal ondersteunt het uitvoeren van rekenkundige bewerkingen, en bash-scripting is geen uitzondering. De manier waarop we rekenkundige bewerkingen uitvoeren, is echter een beetje anders. Hieronder vindt u een van de manieren waarop u rekenkundige bewerkingen kunt uitvoeren in bash. We zullen kijken naar vier soorten rekenkundige bewerkingen - Som, deling en vermenigvuldiging.

#!/bin/bash # Bereken het resultaat van de som=$((70+15)) # Druk de somwaarde af echo "sum = $resultaat" # Bereken het delingsresultaat=$((100/25)) # Druk de delingswaarde echo "division af = $resultaat" #Bereken vermenigvuldiging resultaat=$((15*15)) echo "Vermenigvuldigen = $resultaat"

Laten we het bovenstaande script opslaan als rekenkundig.sh en voer het uit. We krijgen de output hieronder:.

Rekenkundig

Conclusie

Dat is een complete beginnershandleiding om aan de slag te gaan met Bash-scripting. Er is echter meer aan Bash dan wat in deze tutorial wordt behandeld. Een van de plaatsen die ik zou aanraden om je vaardigheden te verbeteren, is de GNU's Bash Reference Manual. Als u problemen ondervindt of een opmerking maakt over dit bericht, kunt u de onderstaande opmerkingen gebruiken.

Voeg muisbewegingen toe aan Windows 10 met deze gratis tools
In de afgelopen jaren zijn computers en besturingssystemen sterk geëvolueerd. Er was een tijd dat gebruikers opdrachten moesten gebruiken om door best...
Beheer en beheer muisbewegingen tussen meerdere monitoren in Windows 10
Muisbeheer voor twee schermen laat je muisbewegingen tussen meerdere monitoren controleren en configureren door de bewegingen nabij de grens te vertra...
Met WinMouse kunt u de beweging van de muisaanwijzer op Windows-pc aanpassen en verbeteren
Als u de standaardfuncties van uw muisaanwijzer wilt verbeteren, gebruik dan freeware WinMuis. Het voegt meer functies toe om u te helpen het meeste u...