Inhoudsopgave
In principe zeggen we dat het een bestand is dat code bevat die is geschreven in een bepaalde programmeertaal die het systeem voor een bepaalde taak gebruikt. Het hoeft geen externe invoer of grafische interface te hebben, maar het moet wel verwerkte gegevens uitvoeren.
Om te beginnen moeten we een teksteditor hebben en de wens om te programmeren. De bestanden die we opslaan met de .sh-extensie kunnen worden uitgevoerd (of geïnterpreteerd) door de console, zolang de eerste regel als volgt is:
#! / bin / bash
Dit vertelt het systeem om de console te gebruiken om het bestand uit te voeren. Bovendien kunt u met het #-teken opmerkingen schrijven.
We gaan verschillende voorbeelden proberen
We maken een bestand met de naam downloads.sh
#! / bin / bash # laten we een alias maken met de naam downloads met het adres van de map Downloads alias downloads = ’/ home / user / Downloads’
Sla het op als downloads.sh
Om het 'Bash-script te starten, geeft u het uitvoeringsmachtigingen. Typ hiervoor in de opdrachtterminal:
chmod u + x downloads.shVergeet niet om deze opdracht uit te voeren voor elk script dat u maakt
Start het 'script' door het in de terminal uit te voeren
./downloads.shAls het werkte, zou je in de map Downloads moeten staan
Gebruik variabelen en parameters in het script
#! / bin / bash # Variabelen gebruiken # echo "Je eerste argument is" $ 1 echo "Je tweede argument is" $ 2
De manier om het script uit te voeren is bijvoorbeeld:
./miScript.sh hallo 4
Het resultaat zou moeten zijn:
Je eerste argument is hallo
Je tweede argument is 4
Hoe maak je het mogelijk om variabelen en parameters in te voeren tijdens de uitvoering?
#! / bin / bash echo "Voer uw naam in en druk op ENTER" #Lees de naam van de variabele lees naam echo "Uw naam is $ naam"
Een nuttiger voorbeeld van een script dat ons vertelt welke processen een bepaalde gebruiker die is ingevoerd, uitvoert
#! / bin / bash RES = s #response to loop continue if while [$ RES = s] echo "Voer gebruikersnaam in:" lees USU #username ps aux | grep $ USU echo "Wilt u doorgaan?" lees RES klaar
Als we willen voorkomen dat een gebruiker het script aan het begin uitvoert, kunnen we de volgende code plaatsen zodat deze alleen door de rootgebruiker kan worden uitgevoerd
#! / bin / bash if [[$ EUID -ne 0]]; dan echo "Dit script moet worden uitgevoerd door de rootgebruiker" 1> & 2 exit 1 fiAls een andere gebruiker het script probeert uit te voeren, werkt het niet en wordt het terminalvenster gesloten.
We kunnen sommige gebruikers ook toestaan om het voor hen uit te voeren. In het begin zullen we de volgende code plaatsen:
#! / bin / bash AUTHORIZED_USER = "toegestane gebruiker" als [$ USER! = $ AUTHORIZED_USER]; dan echo "Dit script moet worden uitgevoerd door de gebruiker $ AUTHORIZED_USER" 1> & 2 exit 1 fi
We zullen een bash-menu maken om verschillende opties aan een gebruiker te geven of om interactie te vergemakkelijken
#! / bin / bash clear while: do echo "Kies een optie" echo "1. Gebruikers ingelogd?" echo "2. Resourceverbruik" echo "3. Services actief?" echo "4. Exit" echo -n "Selecteer een optie [1 - 4]" lees optie case $ optie in 1) echo "Ze zijn verbonden:"; quien;; 2) echo "Lopende htop"; htop;; 3) lsof -n -i -P | grep '*;; 4) echo "Einde"; uitgang 1 ;; *) echo "$ opc is een ongeldige optie?"; echo "Druk op een toets om verder te gaan…"; lees foo ;; klaarVond je deze Tutorial leuk en heb je eraan geholpen?Je kunt de auteur belonen door op deze knop te drukken om hem een positief punt te geven