summaryrefslogtreecommitdiffhomepage
path: root/nl-nl/bash-nl.html.markdown
diff options
context:
space:
mode:
authorhyphz <drmoose94@gmail.com>2017-07-18 17:56:42 +0100
committerhyphz <drmoose94@gmail.com>2017-07-18 17:56:42 +0100
commit5ab5cb9800822d607be2c6ac943377811db98158 (patch)
tree3c804707822744c20da1de54ff60fc8c3197781b /nl-nl/bash-nl.html.markdown
parent62102d02992f83b3a1fb745a39f36332dd4435b7 (diff)
parent6e7c5c793327f4a63b13e555894597915ca91fda (diff)
Merge remote-tracking branch 'adambard/master'
Diffstat (limited to 'nl-nl/bash-nl.html.markdown')
-rw-r--r--nl-nl/bash-nl.html.markdown235
1 files changed, 235 insertions, 0 deletions
diff --git a/nl-nl/bash-nl.html.markdown b/nl-nl/bash-nl.html.markdown
new file mode 100644
index 00000000..da47e2a9
--- /dev/null
+++ b/nl-nl/bash-nl.html.markdown
@@ -0,0 +1,235 @@
+---
+category: tool
+tool: bash
+contributors:
+ - ["Max Yankov", "https://github.com/golergka"]
+ - ["Darren Lin", "https://github.com/CogBear"]
+ - ["Alexandre Medeiros", "http://alemedeiros.sdf.org"]
+ - ["Denis Arh", "https://github.com/darh"]
+ - ["akirahirose", "https://twitter.com/akirahirose"]
+ - ["Anton Strömkvist", "http://lutic.org/"]
+ - ["Rahil Momin", "https://github.com/iamrahil"]
+ - ["Gregrory Kielian", "https://github.com/gskielian"]
+ - ["Etan Reisner", "https://github.com/deryni"]
+translators:
+ - ["Jeroen Deviaene", "https://www.github.com/jerodev"]
+lang: nl-nl
+filename: LearnBash-nl.sh
+---
+
+Bash is de naam van den unix shell, deze wordt gebruikt voor het GNU operating system en is de standaard shell op Linux en Mac OS X.
+Bijna alle voorbeelden hier onder kunnen deel uitmaken van een shell script of kunnen uitgevoerd worden in de shell.
+
+[Lees er meer over hier.](http://www.gnu.org/software/bash/manual/bashref.html)
+
+```bash
+#!/bin/bash
+# De eerste lijn in het schript is shebang, deze laat het systeem weten hoe
+# het script uitgevoerd moet worden: http://en.wikipedia.org/wiki/Shebang_(Unix)
+# Zoals je kan zien wordt # gebruikt om een commentaar lijn te starten.
+
+# Simpel hello world voorbeeld:
+echo Hello world!
+
+# Elke command start op een nieuwe lijn, of achter een puntkomma (;):
+echo 'Dit is de eerste lijn'; echo 'Dit is de tweede lijn'
+
+# Een varialbe declareren gebeurt op volgende manier:
+Variabele="Een string"
+
+# Maar niet op deze manier:
+Variabele = "Een string"
+# Bash ziet variable als een commando en zal een error geven omdat dit commando
+# niet bestaat.
+
+# Of op deze manier:
+Variabele= 'Een string'
+# Bash zal 'Een string' zien als een commanda en een error geven omdat het niet
+# gevonden kan worden.
+
+# Variabelen gebruiken:
+echo $Variabele
+echo "$Variabele"
+echo '$Variabele'
+# Wanneer je een variable wil toekennen, exporteren of nog anders gebruik je
+# de naam zonder '$'. Als je de waarde van de variabele wilt, gebruik je een
+# '$' voor de naam.
+
+# Strings vervangen in variables
+echo ${Variabele/Een/De}
+# Dit zal 'Een' vervangen door 'De' in de string
+
+# Substring
+Length=7
+echo ${Variabele:0:Length}
+# Dit zal de eerste 7 tekens van de string weergeven.
+
+# Standaard waarde voor variabele
+echo ${Foo:-"StandaardwaardeAlsFooLeegIsOfNietBestaat"}
+# Dit werkt voor null en lege strings (Foo=""). Dit werkt niet voor 0 (Foo=0).
+# Merk op dat dit enkel de waarde retourneerd en de variable niet aanpast.
+
+
+# Ingebouwde variabelen:
+# Er zijn enkele zeer handige ingebouwde variabelen, zoals:
+echo "Return waarde van laatste programma: $?"
+echo "PID van dit script: $$"
+echo "Aantal argumenten voor dit script: $#"
+echo "Alle argumenten voor dit script: $@"
+echo "Argumenten voor dit script in apparte variabelen: $1 $2..."
+
+# Een waarde lezen via input:
+echo "Wat is uw naam?"
+read Naam # Merk op dat we geen variabele gedeclareerd hebben
+echo Hallo, $Naam!
+
+# We hebben ook if structuren
+# Gebruik 'man test' voor meer informatie over condities.
+if [ $Naam -ne $USER ]
+then
+ echo "Uw naam is niet gelijk aan de gebruikersnaam"
+else
+ echo "Uw naam is de gebruikersnaam"
+fi
+
+# MERK OP: als $Naam leeg is ziet bash het bovenstaande als volgt:
+if [ -ne $USER ]
+# dit is ongeldige syntax
+# Dus de beter manier om dit te schrijven is
+if [ "$Naam" -ne $USER ] ...
+# Als naam nu leeg is, ziet bash nu nog steeds
+if [ "" -ne $USER ] ...
+# Dit werkt wel zoals het hoort
+
+# Er is ook conditionele executie
+echo "Altijd uitvoeren" || echo "Enkel uitvoeren als vorige command mislukt"
+echo "Altijd uitvoeren" && echo "Enkel uitvoeren als vorige command NIET mislukt"
+
+# Om && en || te gebruiken in if structuren moeten vierkante haken gebruikt worden:
+if [ "$Naam" == "Steve" ] && [ "$Leeftijd" -eq 15 ]
+then
+ echo "Dit wordt uitgevoerd als $Naam Steve is en $Leeftijd 15 is."
+fi
+
+# Expressies worden gemaakt met volgende syntax:
+echo $(( 10 + 5 ))
+
+# Bash werkt steeds in de context van een huidige map in het bestandssysteem.
+# Bestanden en mappen in de huidige map kunnen weergegeven worden met het ls
+# commando.
+ls
+
+# Commandos hebben opties die de uitvoer beinvloeden
+ls -l # Lijst elk bestand en map op een nieuwe lijn.
+
+# Resultaten van een vorig commando kunnen doorgegeven worden aan een volgend
+# commando als input.
+# Het grep commando filter de input met een bepaald patroon. Op deze manier kunnen
+# we alle .txt bestanden weergeven in de huidige map.
+ls -l | grep "\.txt"
+
+# Commando's kunnen gekoppeld worden met andere commando's door gebruik te maken van
+# $( ):
+# Het volgende commando geeft het aantal bestanden weer in de huidige map
+echo "Er zijn hier $(ls | wc -l) bestanden."
+
+# Het zelfde kan gedaan worden met `, maar die kunnen niet genest worden. De methode
+# bij voorkeur is om $( ) te gebruiken.
+echo "Er zijn hier `ls | wc -l` bestanden."
+
+# Bash heeft een case statement dat werkt zoals in Java en C++
+case "$Variabele" in
+ 0) echo "Er is een 0";;
+ 1) echo "Er is een 1";;
+ *) echo "Er is iets";;
+esac
+
+# For lussen itereren over de gegeven argumenten
+# De waarde van $Variabele wordt hier drie keer afgeprint
+for Variable in {1..3}
+do
+ echo "$Variabele"
+done
+
+# Of schrijf een traditionele for loop op deze manier
+for ((a=1; a <= 3; a++))
+do
+ echo $a
+done
+
+# Lussen kunnen ook gebruikt worden met bestanden
+# Deze lus voert het cat commando uit op file1 en file2
+for Variable in file1 file2
+do
+ cat "$Variable"
+done
+
+# Of met het output commando
+for Output in $(ls)
+do
+ cat "$Output"
+done
+
+# while lus:
+while [ true ]
+do
+ echo "body van de lus..."
+ break
+done
+
+# Je kan ook functies aanmaken
+# Defenitie:
+function foo ()
+{
+ echo "Alle argumenten: $@"
+ echo "Apparte argumenten: $1 $2..."
+ echo "Dit is een functie"
+ return 0
+}
+
+# Of simpeler
+bar ()
+{
+ echo "Dit is een andere manier om functies te maken."
+ return 0
+}
+
+# Functies oproepen
+foo "Mijn naam is" $Naam
+
+# Enkele zeer handige commando's die je moet kennen
+# print de laatste 10 lijnen van file.txt
+tail -n 10 file.txt
+# print de eerste 10 lijnen van file.txt
+head -n 10 file.txt
+# Sorteer de lijnen in file.txt
+sort file.txt
+# Vind dubbele lijnen in file.txt
+uniq -d file.txt
+# Print de eerste kolom voor het ',' karakter
+cut -d ',' -f 1 file.txt
+# Vervang elke 'okay' met 'great' in file.txt (werkt ook met regex)
+sed -i 's/okay/great/g' file.txt
+# Print alle lijnen die voldoen aan de regex naar stdout
+grep "^foo.*bar$" file.txt
+
+
+# Gebruik de ingebouwde help functies door het help commando te gebruiken:
+help
+help help
+help for
+help return
+help source
+help .
+
+# Lees de bash documentatie met het man commando:
+apropos bash
+man 1 bash
+man bash
+
+# Lees bash info documentatie:
+info bash
+info bash 'Bash Features'
+info bash 6
+info --apropos bash
+```