Er zijn veel gidsen op het internet die laten zien hoe Shell-scripts gemaakt kunnen worden met BASH en deze gids is bedoeld om een iets andere draai te geven, omdat het geschreven is door iemand die heel weinig shell-scriptingervaring heeft.
Nu zou je kunnen denken dat dit een idioot idee is, maar ik merk dat sommige gidsen met je praten alsof je al een expert bent en dat andere gidsen er te lang over doen om de achtervolging in te schakelen.
Hoewel mijn LINUX / UNIX-shell-scriptingervaring beperkt is, ben ik een softwareontwikkelaar van beroep en ben ik een goede hand in scripttalen zoals PERL, PHP en VBScript.
Het punt van deze gids is dat je zult leren zoals ik leer en alle informatie die ik ophaal die ik zal doorgeven aan jou.
Ermee beginnen
Er is duidelijk een hoop theorie die ik meteen aan je kan doorgeven, zoals het beschrijven van de verschillende soorten schaal en de voordelen van het gebruik van BASH boven KSH en CSH.
De meeste mensen die iets nieuws willen leren, willen eerst een begin maken met enkele praktische lessen en met dat in gedachten zal ik je niet vervelen met trivia die nu niet belangrijk is.
Alles wat je nodig hebt om deze handleiding te volgen, is een teksteditor en een terminal waarop BASH draait (de standaard shell op de meeste Linux-distributies).
Tekstbewerkers
Andere handleidingen die ik heb gelezen, hebben gesuggereerd dat je een teksteditor nodig hebt die kleurcodering van opdrachten bevat en de aanbevolen editors zijn VIM of EMACS.
Kleurcodering is leuk omdat het commando's accentueert tijdens het typen, maar voor de absolute beginner die je de eerste paar weken zou kunnen doorbrengen met het leren van VIM en EMACS zonder een enkele regel code te schrijven.
Van de twee geef ik de voorkeur aan EMACS, maar om eerlijk te zijn, gebruik ik liever een eenvoudige editor zoals nano, gedit of leafpad.
Als je scripts schrijft op je eigen computer en je weet dat je altijd toegang hebt tot een grafische omgeving, dan kun je de editor kiezen die het beste bij je past en het kan grafisch zijn, zoals GEdit of een editor die direct in de terminal draait zoals nano of vim.
Voor de doeleinden van deze handleiding zal ik nano gebruiken, aangezien het native op de meeste Linux-distributies is geïnstalleerd en het daarom waarschijnlijk is dat je er toegang toe hebt.
Een terminalvenster openen
Als u een Linux-distributie gebruikt met een grafische desktop zoals Linux Mint of Ubuntu, kunt u een terminalvenster openen door op CTRL + ALT + T te drukken.
Waar je je scripts neerzet
Voor deze tutorial kunt u uw scripts in een map onder uw thuismap plaatsen.
Zorg ervoor dat u zich binnen een terminalvenster in uw persoonlijke map bevindt door de volgende opdracht te typen:
cd ~
Het cd-commando staat voor change directory en de tilde (~) is een snelkoppeling voor je thuismap.
U kunt controleren of u zich op de juiste plaats bevindt door de volgende opdracht te typen:
pwd
De opdracht pwd zal u uw huidige werkdirectory vertellen (waar u zich in de mappenboom bevindt). In mijn geval is het teruggekeerd / home / gary.
Nu wilt u natuurlijk niet dat u uw scripts rechtstreeks in de basismap plaatst, dus maak een map met de naam scripts door de volgende opdracht te typen.
mkdir scripts
Ga naar de nieuwe scriptmap door de volgende opdracht te typen:
Je eerste script
Het is gebruikelijk om te leren programmeren om het eerste programma eenvoudig de woorden "Hallo wereld" te laten weergeven.
Voer vanuit je scriptmap het volgende commando in:
nano helloworld.sh
Voer nu de volgende code in het nano-venster in.
#! / bin / bash echo "hallo wereld"
Druk op CTRL + O om het bestand op te slaan en CTRL + X om nano af te sluiten.
Het script zelf is als volgt opgebouwd:
De #! / Bin / bash moet worden opgenomen aan de bovenkant van alle scripts die u schrijft, omdat tolken en het besturingssysteem weten hoe het bestand moet worden verwerkt. In principe moet je gewoon onthouden om het in te voeren en te vergeten waarom je het doet.
De tweede regel heeft een enkel commando met de naam echo, dat de tekst uitvoert die er direct achter volgt.
Merk op dat als u meer dan één woord wilt weergeven, u dubbele aanhalingstekens (") rondom de woorden moet gebruiken.
U kunt nu het script uitvoeren door de volgende opdracht te typen:
sh helloworld.sh
De woorden "Hallo wereld" moeten verschijnen.
Een andere manier om scripts uit te voeren is als volgt:
./helloworld.sh
De kans is groot dat als u dat commando direct in uw terminal uitvoert, u een toestemmingsfout krijgt.
Typ het volgende als u machtigingen wilt verlenen om het script op deze manier uit te voeren:
sudo chmod + x helloworld.sh
Dus wat gebeurde er daar eigenlijk? Waarom was je in staat om sh helloworld.sh te draaien zonder de rechten te wijzigen, maar liep ./helloworld.sh een probleem?
De eerste methode laadt de bash-interpreter die de helloworld.sh als invoer gebruikt en uitwerkt wat ermee te doen. De bash-interpreter heeft al toegangsrechten en hoeft alleen de opdrachten in het script uit te voeren.
Met de tweede methode kan het besturingssysteem uitzoeken wat het script doet en daarom is een uitvoerbaar bit vereist om uit te voeren.
Het bovenstaande script was in orde, maar wat gebeurt er als je de aanhalingstekens wilt weergeven?
Er zijn verschillende manieren om dit te bereiken. U kunt bijvoorbeeld als volgt een backslash voor de aanhalingstekens plaatsen:
echo "hallo wereld "
Dit zal de output "Hello World" produceren.
Wacht even, wat als je 'Hallo wereld' wilt weergeven?
Nou, je kunt ook ontsnappen aan de escape-personages
echo "" hallo wereld ""
Dit zal de uitvoer "hallo wereld " produceren.
Nu weet ik wat je denkt. Maar ik wil echt "" hallo wereld "" weergeven
Het gebruik van echo met al deze escape-personages kan behoorlijk gek worden. Er is een alternatief commando dat je kunt gebruiken, printf genaamd.
Bijvoorbeeld:
printf '% s n' ' "" hallo wereld ""'
Merk op dat de tekst die we willen weergeven tussen enkele aanhalingstekens ligt. De opdracht printf voert tekst uit uw script uit. De% s betekent dat er een tekenreeks wordt weergegeven, de n voert een nieuwe regel uit.
Samenvatting
We hebben niet echt veel aandacht besteed aan deel een, maar hopelijk heb je je eerste script aan het werk.
In het volgende deel zullen we kijken naar het verbeteren van het hello world-script om tekst in verschillende kleuren weer te geven, invoerparameters, variabelen accepteren en verwerken en commentaar leveren op je code.