Voorbeeld scripts

1. Hello world

Het programma "Hello world" is het allereerste programma dat een programmeur schrijft terwijl hij een nieuwe taal leert. Het is een programma dat de " Hello world" als output afdrukt. Je kunt dus als volgt een bestand helloword.sh maken met de editor (vim of nano):

$  nano helloworld.sh

Kopieer nu onderstaande regels naar 'helloworld.sh' en sla het op.

#! /bin/bash
echo "Hello world"

Nu kun je de opdracht uitvoeren:

$ bash helloworld.sh

Een andere methode is om het bestand eerst uitvoerbaar te maken:

$ chmod a+x helloworld.sh

En voer nu het bestand uit met behulp van de onderstaande opdracht.

$ ./helloworld.sh

2. Met behulp van Echo Command

Echo- opdracht is de meest voorkomende en meest gebruikte opdracht in Linux. Het wordt gebruikt om tekst af te drukken of uit te voeren in de bash. Het heeft veel opties die verschillende bewerkingen uitvoeren.

Syntaxis:

echo [options] [ARGUMENTS]

Hier zijn de opties:

-n wordt gebruikt om een ​​volgende nieuwe regel te onderdrukken

-e wordt gebruikt om backslash-escape tekens te interpreteren

-E wordt gebruikt om de interpretatie van de escape-tekens uit te schakelen, en het is de standaardoptie voor het echo-commando.

Maak een nieuw bestand echo.sh en voeg de onderstaande regels eraan toe.

#! /bin/bash 
echo "Student Linux" 
echo -n "Ik ben een Linux-gebruiker" 
echo -e "\nGood \t Day \t All"

Hier is \n een escape-teken voor een nieuwe regel en \t is een escape-teken voor de horizontale tab.

 

3. Opmerkingen gebruiken

Opmerkingen zijn opmerkingen van een programmeur over het doel van de code of logica. Het is een goede gewoonte om opmerkingen toe te voegen, zodat iedereen in de toekomst code kan begrijpen door alleen opmerkingen te lezen. Opmerkingen maken deel uit van de code, maar worden genegeerd door de compiler. In het bash-script wordt elke regel die begint met # als commentaar beschouwd. Bijvoorbeeld:

#! /bin/bash 

# dit is een commentaar
echo "Commentaarvoorbeeld"

Hier is '# dit is een opmerking' een opmerking, en wanneer we deze scriptcompiler uitvoeren, negeert deze de regel.

Opmerkingen kunnen zijn:

  1. Enkele regel commentaar
  2. Meerdere regels commentaar

We gebruiken '#' voor commentaar van één regel en: 'inhoud' voor commentaar met meerdere regels. Controleer het onderstaande commando voor zowel enkele als talrijke opmerkingen in een bash-script.

#! /bin/bash
: '
Dit script berekent de
som van 2 en 8.
'
((som=2+8))
# resultaat is een echo met som
echo "som is $som"

 

4. Variabelen gebruiken

Variabelen zijn benoemde symbolen die worden gebruikt om waarden tijdelijk op te slaan. Het kan een tekenreeks of numerieke waarde zijn die we op elke plaats in het script kunnen gebruiken. Je kunt variabelen maken en er waarden aan toewijzen. Variabelenamen moeten beschrijvend zijn, zodat je het doel kunt begrijpen waarmee je die variabele hebt gemaakt.

We hebben drie soorten variabelen in bash-scripts:

1. Speciale variabelen:

De volgende zijn de andere unieke vooraf ingestelde variabelen:

2. Omgevingsvariabelen:

Gebruik de volgende opdracht om de actieve omgevingsvariabelen in je Bash-sessie te zien:

env | less

:q ga je uit env.

3. Door de gebruiker gedefinieerde variabelen:

Door de gebruiker gedefinieerde variabelen zijn variabelen die door ons in ons script worden ingesteld. We hebben bijvoorbeeld de variabele 'jaar' om het huidige jaar op te slaan, zoals hieronder.

jaar=2020

En we kunnen later gebruiken

echo $jaar

je kunt zien dat we met $ naar de waarde verwezen.

Dus maak nu een bestand variables.sh en voeg de onderstaande regels erin toe.

#! /bin/bash

website=www.noorderpoort.nl
year=2021

# Gebruikersnaam ophalen van speciale variabelen
name=$USER

echo "Welkom op $website"
echo -e "Hallo $name \n"
echo -e "Jaar = $year \n"
echo "Wordt uitgevoerd op $HOSTNAME"

 

 

5. Gebruikersinvoer krijgen

Het verkrijgen van gebruikersinvoer is cruciaal voor het interactief maken van een script, dus voor dit doel gebruiken we in bash-script het 'read'-commando.

#! /bin/bash
echo  "Wat is je leeftijd?"
read leeftijd
echo  "Je leeftijd is $leeftijd"

6. Opdrachtargumenten gebruiken

We kunnen ook gebruikersinvoer lezen van opdrachtargumenten, net als elke andere programmeertaal. We kunnen deze argumenten vervolgens in onze scripts gebruiken als $1, $2, enzovoort, afhankelijk van het aantal argumenten dat we hebben opgegeven. Maak een bestand 'arguments.sh' en kopieer de onderstaande regels erin.

#! /bin/bash
echo "Totaal aantal argumenten: $#"
echo "Gebruikersnaam: $1"
echo "Leeftijd: $2"
echo "Volledige naam: $3"

Voer nu het scriptbestand 'arguments.sh' uit met drie extra parameters achter de naam.

bash arguments.sh patrick 29 'Patrick Linux'

 

7. Lussen gebruiken

Loops worden gebruikt in elke programmeertaal waarbij je dezelfde code herhaaldelijk moet uitvoeren. Er zijn twee soorten loops in bash-script while en for loops.

Herhalingslus (while)

Het wordt gebruikt wanneer je de coderegel een onbekend aantal keren moet herhalen totdat deze aan bepaalde voorwaarden voldoet. Hier is hoe het wordt gevormd:

#! /bin/bash
while [CONDITION]
do
  [COMMANDS]
done

De voorwaarde wordt geëvalueerd voordat de opdrachten bij elke iteratie worden uitgevoerd, en deze wordt uitgevoerd totdat de voorwaarde naar false evalueert en de lus wordt beëindigd.

#! /bin/bash
i=0

while [ $i -le 4 ]
do
  echo Number: $i
  ((i++))
done

 

For loop

De  forlus herhaalt zich over een lijst met items en voert de opgegeven reeks opdrachten uit. De Bash-  for lus heeft de volgende vorm:

#! /bin/bash
for item in [LIST]
do
  [COMMANDS]
done

In het onderstaande voorbeeld zal de lus elk item herhalen en een tabel met variabele i genereren.

#! /bin/bash
i=2
for (( counter=1; counter<=10; counter++ ))
do
    ((result= $i * $counter))
    echo "$i x $counter = $result"
done

 

8. Voorwaardelijke verklaringen gebruiken

Voorwaardelijke verklaringen zijn een van de fundamentele concepten van elke programmeertaal. Je neemt beslissingen op basis van bepaalde voorwaarden die zijn vervuld. In het bash-script hebben we voorwaardelijke blokken.

als verklaring (if)

In een bash-script, als de conditie een bepaalde waarde heeft, laten we eens kijken naar de basisconditie.

if Condition
then
  STATEMENTS
fi

Je kunt zien of statements beginnen met het evalueren van de conditie en Run-statements tussen 'then' en 'fi', op voorwaarde dat de “if” -voorwaarde resulteert in True, anders wordt de instructie genegeerd.

#! /bin/bash

echo -n "Enter a number: "
read VAR

if [[ $VAR -gt 10 ]]
then
  echo "The variable is greater than 10."
fi

In het bovenstaande voorbeeld wordt de gebruiker gevraagd een getal in te voeren, en als het getal meer is dan 10, zie je de uitvoer 'De variabele is groter dan 10.', anders zie je niets.

if else-verklaring

Nu gaan we ook een “if else” -blok toevoegen, dat wordt uitgevoerd als de voorwaarde onwaar is.

if Condition
then
  STATEMENTS1
else
  STATEMENTS2
fi

Dus we zullen het bovenstaande voorbeeld aanpassen.

#! /bin/bash

echo -n "Enter a number: "
read VAR

if [[ $VAR -gt 10 ]]
then
  echo "The variable is greater than 10."
else
  echo "The variable is equal or less than 10."
fi

Als je de code uitvoert en een getal invoert, zal het script een tekst afdrukken op basis van of het getal groter of kleiner/gelijk is aan 10.

if elif statement

Bash heeft ook een gelijkwaardige syntaxis voor 'else if'.

if Condition1
then
  STATEMENTS1
elif Condition2
then
  STATEMENTS2
else
  STATEMENTS3
fi

Dus na het aanpassen van het bovenstaande voorbeeld:

#! /bin/bash

echo -n "Enter a number: "
read VAR

if [[ $VAR -gt 10 ]]
then
  echo "The variable is greater than 10."
elif [[ $VAR -eq 10 ]]
then
  echo "The variable is equal to 10."
else
  echo "The variable is less than 10."
fi

 

9. Functies gebruiken

Net als andere programmeertalen heeft het bash-script ook het concept van functies. Hiermee kan de gebruiker een aangepast codeblok schrijven dat steeds opnieuw moet worden gebruikt.

Syntaxis:

function FunctionName () 
{ 
  statements 
}

Nu zullen we een functie 'som' maken die invoernummers van de gebruiker zal aannemen en de som van deze nummers als uitvoer zal tonen.

#! /bin/bash
function Sum()
{
  echo -n "Enter First Number: "
  read a
  echo -n "Enter Second Number: "
  read b
  echo "Sum is: $(( a+b ))"
}

Sum

 

10. Tekenreekslengte weergeven

Het verwerken van strings is een essentieel onderdeel van bash-scripting. Bash-script heeft een eenvoudige manier om de lengte van een stringvariabele te krijgen. In het voorbeeld laten we je zien hoe je de lengte van een string in bash-script kunt krijgen.

#! /bin/bash
Str="Welcome to noorderpoort.nl"
echo "Length is: ${#Str}"

 

11. Strings aaneenschakelen

Bash-script biedt een moeiteloze manier om string bewerkingen af ​​te handelen, zoals het samenvoegen van meerdere strings tot een enkele string. In het voorbeeld laten we je zien hoe je dat doet.

#! /bin/bash

string1="noorder"
string2="poort.nl"
string=$string1$string2
echo "$string is a great website."

 

12. Zoek en vervang tekenreeks

Bash-script heeft een handige en gemakkelijke manier om de tekst binnen een string te vinden en te vervangen. Het kan op twee manieren worden gebruikt:

${string/pattern/replacement}

Dit vervangt alleen de eerste overeenkomst binnen de opgegeven tekenreeks. Om alle overeenkomsten te vervangen, zullen we deze gebruiken zoals hieronder weergegeven:

${string//pattern/replacement}

In dit voorbeeld zullen we beide opties gebruiken om je het verschil in output te laten zien:

#! /bin/bash
Str="Path of the bash is /bin/bash"
# Finding and Replacing First match only
echo ${filename/bash/sh}
# Finding and Replacing all matches
echo ${filename//bash/sh}

 

13. Directory's aanmaken

Het volgende voorbeeld laat zien hoe je een directory kunt maken vanuit een shellscript. Het script krijgt de directorynaam van de gebruiker en controleert of deze al bestaat of niet. Als het bestaat, zou je een bericht "Directory Exists" moeten zien; anders wordt er een map aangemaakt.

#! /bin/bash
echo -n "Enter directory name ->"
read dir
if [ -d "$dir" ]
then
echo "Directory exists"
else
`mkdir $dir`
echo "Directory created"
fi

 

14. Bestanden lezen

Met Bash kun je bestanden heel effectief lezen. Het onderstaande voorbeeld laat zien hoe je een bestand kunt lezen met shellscripts. Maak een bestand met de naam 'bedrijven.txt' met de volgende inhoud.

Google 
Amazon 
Microsoft 
Macdonald 
KFC 
Apple

Dit script leest het bovenstaande bestand en geeft de uitvoer weer.

#! /bin/bash
file='bedrijven.txt'
while read line; do
echo $line
done < $file

 

15. Bestanden verwijderen

Met behulp van een bash-script kun je ook een bestand verwijderen. In het voorbeeld wordt de gebruiker gevraagd om de bestandsnaam als invoer op te geven en deze te verwijderen als deze bestaat. Het gebruikt de Linux rm-opdracht voor het verwijderen hier.

#! /bin/bash
echo -n "Enter filename ->"
read name
rm -i $name
echo "File Deleted"

 

16. Serverstatistieken weergeven

Dit voorbeeld toont je een snelle serverstatistieken. Als systeembeheerder helpt dit bash-script je om belangrijke details te krijgen, zoals uptime, laatste logins, schijf- en geheugengebruik voor een Linux-machine.

#! /bin/bash
date
echo "uptime:"
uptime
echo "Currently connected:"
w
echo "--------------------"
echo "Last logins:"
last -a | head -3
echo "--------------------"
echo "Disk and memory usage:"
df -h | xargs | awk '{print "Free/total disk: " $11 " / " $9}'
free -m | xargs | awk '{print "Free/total memory: " $17 " / " $8 " MB"}'y
echo "--------------------"

Je moet het script uitvoeren als rootgebruiker.

17. System Maintenance

Dit kleine Linux shell-script upgradet en schoont het systeem automatisch op in plaats van het handmatig te doen.

#! /bin/bash

echo -e "\n$(date "+%d-%m-%Y --- %T") --- Starting work\n"

apt-get update
apt-get -y upgrade

apt-get -y autoremove
apt-get autoclean

echo -e "\n$(date "+%T") \t Script Terminated"

Je moet dit script uitvoeren als rootgebruiker.

Laatste script alleen uitvoeren als je ook echt de update/upgrade wilt uitvoeren. Bedenk goed, dit kost tijd, de services gaan offline!

Wij hopen dat bovenstaande voorbeeld scripts een goed beeld hebben gegeven over bash-scripting en vooral mee aan de slag gaan en proberen om reperterende handelingen te scripten.