BASH gebruiken voor Loop
Een van de eenvoudigste trucs bij het schrijven van bash-scripts is het maken van een lus, zodat je een bepaalde taak meerdere keren automatisch kunt laten uitvoeren. Uiteindelijk zal de lus een vooraf bepaalde testconditie bereiken en plotseling stoppen met uitvoeren. Loops zoals deze zullen perfect werken in bash op Linux en macOS, evenals de bash-shell in Windows 10 en zelfs de verschillende shells in FreeBSD. Uiteraard kunt u elke gewenste opdracht in een lus schrijven en ervoor zorgen dat elk proces verloopt zolang u wilt. Hoewel we een aantal zeer eenvoudige loops zullen schrijven, kun je deze vaardigheden gebruiken om te schrijven wat voor soort scripts je maar wilt.
Er zijn veel manieren om een script te schrijven, maar voor deze discussie gaan we ervan uit dat je een opdrachtprompt hebt geopend door te zoeken naar een terminal op de Dash door erop te klikken in de menu's KDE, MATE, LX of Whisker of door Ctrl, Alt en T op hetzelfde moment ingedrukt te houden. Hoewel we vi / vim en nano als editors bespreken, is de vraag welke editor moet worden gebruikt vrij persoonlijk en kunt u werken met alles waarmee u zich prettig voelt.
Methode 1: De tot lus
Misschien is de meest basale lus in bash de tot-lus. Het blijft opdrachten uitvoeren totdat de testvoorwaarde die u hebt ingesteld waar wordt. We gaan ervan uit dat je nano of vi hebt gebruikt om een niet-bestaand bestand genaamd until.sh te openen en er nieuwe tekst in kunt invoegen. We maken iets dat in uw terminal telt tot 20 om dit eenvoudig te houden.
Begin door het volgende in te typen:
#! / Bin / bash
n = 0
tot [$ n -gt 20]
do
echo $ n
((N ++))
gedaan
Als u nano gebruikt, slaat u deze op door Ctrl ingedrukt te houden en vervolgens op O te drukken en vervolgens op X om af te sluiten. Gebruikers van vi willen ontsnappen en typen dan: wq om op te slaan en te stoppen.
Typ chmod + x totLoop bij de prompt om het uitvoerbaar te maken en typ dan ./untilLoop om het uit te voeren. Als het eenmaal is uitgevoerd, blijft de lus nieuwe nummers afdrukken op uw terminal totdat de n-variabele 20 wordt.
By the way, de eerste regel vertelt uw omgeving welke shell moet worden geladen bij het werken met deze scripts. Sommige programmeurs adviseren u altijd om #! / Bin / sh te gebruiken om ervoor te zorgen dat uw script voldoet aan bepaalde POSIX-standaarden, maar deze eenvoudige scripts zouden geen enkel probleem mogen hebben met het overgrote deel van moderne systemen.
Methode 2: The for Loop
Een for-lus bekijkt elk item in een bepaalde lijst en voert vervolgens een bepaalde set opdrachten in die lijst uit. We zullen er een maken die een aantal namen van besturingssystemen afdrukt, maar onthoud dat je hier mogelijk mee zou kunnen doen als je dat wilt.
Typ nano forLoop of vi forLoop bij de opdrachtprompt en begin met het invoeren van dit volgende script. Gebruikers van vi moeten de invoegmodus openen voordat ze dit doen.
#! / Bin / bash
unices = 'GNU / Linux FreeBSD OpenBSD NetBSD Solaris OpenIndiana Darwin HP-UX Minix'
voor unix in $ unices
do
echo $ unix
gedaan
PRO TIP: Als het probleem zich voordoet met uw computer of een laptop / notebook, kunt u proberen de Reimage Plus-software te gebruiken die de opslagplaatsen kan scannen en corrupte en ontbrekende bestanden kan vervangen. Dit werkt in de meeste gevallen, waar het probleem is ontstaan door een systeembeschadiging. U kunt Reimage Plus downloaden door hier te klikken
Sla het bestand opnieuw op met behulp van de Ctrl + O en dan Ctrl + X methode in nano of de Esc dan: wq methode in vi voordat je de opdracht chmod + x forLoop geeft om het uitvoerbaar te maken. Als u dit hebt gedaan, voert u het uit door ./forLoop te typen wanneer u hierom wordt gevraagd. De for-lus dwingt de echo-opdracht om beurtelings te werken aan elk van de items in de unices-variabele. U kunt die lijst opnieuw vervangen door een argument en de echo vervangen door een opdracht om lange processen te automatiseren.
Methode 3: De while-lus
Begin met het bewerken van een derde bestand genaamd whileLoop met behulp van nano, vi of welke andere editors u ook wilt gebruiken. Als u liever een grafische teksteditor gebruikt, kunt u dat ook met elk van deze projecten doen, zolang u ervoor zorgt dat u het bestand in dezelfde map plaatst als waarin u werkt vanuit de opdrachtprompt. .
In dit bestand wilt u de regels toevoegen:
#! / Bin / bash
n = 0
terwijl [$ n-le 20]
do
echo $ n
((N ++))
gedaan
Sla het bestand op dezelfde manier op als de anderen en sla vervolgens de teksteditor weer uit. Nadat je het hebt afgesloten, geef je het commando chmod + x whileLoop om het uit te voeren en voer je ./whileLoop uit om het uit te voeren. U ziet dezelfde uitvoer die uit het untilLoop-script kwam vanaf de eerste methode, aangezien het meer dan waarschijnlijk een fractie van een seconde telt van 0 tot 20.
Dit is een uitstekende demonstratie van het feit dat er meer dan één manier is om dingen te doen wanneer je op deze manier met loops werkt. Hoewel er technisch gezien geen verkeerde manier is om dit te doen, kom je waarschijnlijk scriptauteurs tegen die beweren dat je je scripts dichterbij de manier zou moeten schrijven waarop de C-programmeertaal dingen doet of anders, anderen zouden kunnen suggereren dat je dit niet zou moeten doen. Eerlijk gezegd zijn er waarschijnlijk veel juiste manieren om een probleem op te lossen.
Voel je vrij om je scripts te verwijderen als je klaar bent met het oefenen met hen.
PRO TIP: Als het probleem zich voordoet met uw computer of een laptop / notebook, kunt u proberen de Reimage Plus-software te gebruiken die de opslagplaatsen kan scannen en corrupte en ontbrekende bestanden kan vervangen. Dit werkt in de meeste gevallen, waar het probleem is ontstaan door een systeembeschadiging. U kunt Reimage Plus downloaden door hier te klikken