Uitbreiding nodig: Dit artikel is onvolledig en moet worden uitgebreid. Meer info... |
In Aanbouw: Dit artikel is nog in aanbouw. Meer info... |
Geschikt voor: Versie: 10.04 LTS, 11.04, 11.10
Shellscripts schrijven voor Ubuntu
Een belangrijk voordeel van Ubuntu systeembeheer is de mogelijkheid om beheertaken makkelijk te automatiseren met shellscripts.
Een shellscript is een bestand wat een reeks terminalopdrachten bevat. Het is vergelijkbaar met een .bat bestand op MS-DOS en Windows, maar in bash shellscripts kan ook geavanceerde logica, zoals pattern matching en conditionele uitvoering, worden geïmplementeerd.
Dit artikel bespreekt de basis van het schrijven van shellscripts, zodat u meteen aan de slag kunt!
Vereiste kennis voor dit artikel
Dit artikel gaat er van uit dat u de basis van het werken met de terminal kent. Lees hiervoor meer in het artikel Werken met de terminal. U heeft geen kennis van programmeren nodig om dit artikel te volgen, maar het kan wel helpen.
Het uitvoeren van een shellscript
Om te beginnen met het schrijven van shellscripts zullen we, zoals een traditie is voor programmeerhandleidingen, het bekende "Hello world!"-programma schrijven. Maak met uw favoriete plattetekstverwerker een nieuw bestand met de naam hello_world en typ het volgende in, waarna u het bestand opslaat:
echo 'Hello world!'
Geef de volgende opdracht uit om het script uit te voeren met bash:
bash hello_world
Nu zal de zin "Hello world!" op uw scherm verschijnen.
Geef het bestand recht om direct uit te voeren met een chmod opdracht:
chmod +x hello_world
Het script kan nu met de volgende opdracht worden uitgevoerd:
./hello_world
Voor persoonlijke scripts kunt u een submap met de naam bin maken:
mkdir ~/bin mv hello_world bin/
De volgende keer dat u op de computer inlogt kunt u gewoon hello_world typen als opdracht in een terminalvenster waarop uw computer vriendelijk de wereld zal begroeten. Het shellscript is nu te gebruiken als een externe opdracht.
Hoe zit het met de extensie ".sh"?
Een shellscript heeft, net als andere bestanden op Ubuntu- en andere UNIX-systemen, geen verplichte extensie. Als u het makkelijker vindt om zo bestanden te vinden ga dan gerust uw gang en geef de shellscript een extensie. U kan elke extensie gebruiken die u wilt, bijvoorbeeld ".script", maar de extensie ".sh" wordt veel gebruikt.
Verschillende soorten opdrachten
Enkele opdrachten zijn ingebouwd maar veel opdrachten zijn externe opdrachten en maken gebruik van een hulpprogramma in een bestand.
voorbeeld: voor het kopiëren van bestanden kan gebruik worden gemaakt van de opdracht cp, deze opdracht maakt gebruik van het hulpprogramma /bin/cp.
- shellscripts zijn te vergelijken met externe opdrachten
gebruik type om te zien wat een opdracht is:
$ type cp cp is /bin/cp $ type type type is een ingebouwde shell-functie $ type hello_world hello_world is /home/naam/bin/hello_world
Waarom zijn ingebouwde opdrachten sneller als externe opdrachten?
- het bestand met het hulpprogramma moet van de schijf worden gelezen,
- voor het uitvoeren van een externe opdracht wordt een afzonderlijk proces gestart
iedere externe opdracht wordt in een eigen proces uitgevoerd met eigen variabelen!
Variabelen
Variabelen gebruikt u om informatie op te slaan. Een variabele maakt u door deze een waarde te geven, bijvoorbeeld in een terminalvenster:
var="TEXT"
- In plaats van 'var' kan u iedere naam gebruiken als het maar niet begint met een cijfer. In plaats van "TEXT" kan u ook van alles gebruiken.
Om de informatie uit de variabele te gebruiken moet u er een dollar '$' teken voor plaatsen:
var="TEXT" echo $var
De read opdracht kan worden gebruikt om te vragen een variabele in te voeren.
Voorbeeldscript:
clear read -p "Wat is uw naam : " naam read -p "Wat is uw leeftijd : " leeftijd read -p "Bent u een man of vrouw? : " sekse echo "Dus u bent een $sekse van $leeftijd jaar oud met de naam $naam"
Meer info
(Engelstalige) BeginnersBashScripting