Skip to content

Commit 09a5140

Browse files
authored
Feature/bash functions german (#141)
* ADDED: German version of bash loops * ADDED: German version of bash functions
1 parent d825df9 commit 09a5140

File tree

2 files changed

+265
-0
lines changed

2 files changed

+265
-0
lines changed
Lines changed: 199 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,199 @@
1+
# Bash Schleifen
2+
3+
Wie in jeder anderen Sprache, sind Schleifen sehr praktisch. Mit Bash können sie `for`, `while` und `until` Schleifen verwenden.
4+
5+
## For Schleifen
6+
7+
Hier ist die Struktur einer `for` Schleife:
8+
9+
```bash
10+
for var in ${list}
11+
do
12+
ihre_befehle
13+
done
14+
```
15+
16+
Beispiel:
17+
18+
```bash
19+
#!/bin/bash
20+
21+
users="devdojo bobby tony"
22+
23+
for user in ${users}
24+
do
25+
echo "${user}"
26+
done
27+
```
28+
29+
Eine kurze Zusammenfassung des Beispiels:
30+
31+
- Zuallererst erstellen wir eine Liste von Benutzern und speichern sie in einer Variable welche wir als `users` bezeichnen.
32+
- Dann starten wir unsere `for` Schleife mit dem `for` Befehl.
33+
- Danach definieren wir eine Variable, welche jeden Eintrag in der `users` Variable darstellt. In unserem Fall definieren wir eine Variable mit dem Namen `user`, welche jeden einzelnen Benutzer in der `users` Variable repraesentiert.
34+
- Dann geben wir das Schlüsselwort `in` an, gefolgt von unserer Liste, die wir durchlaufen.
35+
- In der nächsten Zeile verwenden wir das Schlüsselwort `do`, das angibt, was wir für jede Iteration der Schleife tun werden.
36+
- Dann geben wir die Befehle an, die wir ausführen möchten.
37+
- Abschließend schließen wir die Schleife mit dem Schlüsselwort `done`.
38+
39+
Sie können `for` auch verwenden, um eine Reihe von Zahlen zu verarbeiten. Hier ist zum Beispiel eine Möglichkeit, von 1 bis 10 zu durchlaufen:
40+
41+
```bash
42+
#!/bin/bash
43+
44+
for num in {1..10}
45+
do
46+
echo ${num}
47+
done
48+
```
49+
50+
## While Schleifen
51+
52+
Der Aufbau einer while-Schleife ist der `for`-Schleife recht ähnlich:
53+
54+
```bash
55+
while [ ihre_bedingung ]
56+
do
57+
ihre_befehle
58+
done
59+
```
60+
61+
Hier ist ein Beispiel für eine `while`-Schleife:
62+
63+
```bash
64+
#!/bin/bash
65+
66+
counter=1
67+
while [[ $counter -le 10 ]]
68+
do
69+
echo $counter
70+
((counter++))
71+
done
72+
```
73+
74+
Zuerst haben wir eine Zählervariable angegeben und auf „1“ gesetzt, dann haben wir innerhalb der Schleife einen Zähler hinzugefügt, indem wir diese Anweisung hier verwendet haben: `((counter++))`. Auf diese Weise stellen wir sicher, dass die Schleife nur 10 Mal und nicht ewig ausgeführt wird. Die Schleife wird abgeschlossen, sobald der Zähler 10 erreicht, da wir dies als Bedingung festgelegt haben: `while [[ $counter -le 10 ]]`.
75+
76+
Erstellen wir ein Skript, das den Benutzer nach seinem Namen fragt und keine leere Eingabe zulässt:
77+
78+
```bash
79+
#!/bin/bash
80+
81+
read -p "Wie ist ihr Name? " name
82+
83+
while [[ -z ${name} ]]
84+
do
85+
echo "Ihr Name darf nicht leer sein. Bitte geben Sie einen gültigen Namen ein!"
86+
read -p "Geben Sie Ihren Namen erneut ein? " name
87+
done
88+
89+
echo "Hallo ${name}"
90+
```
91+
92+
Wenn Sie nun das oben Gesagte ausführen und einfach die Eingabetaste drücken, ohne eine Eingabe vorzunehmen, läuft die Schleife erneut und fragt Sie immer wieder nach Ihrem Namen, bis Sie tatsächlich eine Eingabe machen.
93+
94+
## Until Schleifen
95+
96+
Der Unterschied zwischen `until`- und `while`-Schleifen besteht darin, dass die `until`-Schleife die Befehle innerhalb der Schleife ausführt, bis die Bedingung wahr wird.
97+
98+
Struktur:
99+
100+
```bash
101+
until [[ ihre_bedingung ]]
102+
do
103+
ihre_befehle
104+
done
105+
```
106+
107+
Beispiel:
108+
109+
```bash
110+
#!/bin/bash
111+
112+
count=1
113+
until [[ $count -gt 10 ]]
114+
do
115+
echo $count
116+
((count++))
117+
done
118+
```
119+
120+
## Continue und Break
121+
122+
Wie bei anderen Sprachen können Sie auch bei Ihren Bash-Skripten `continue` und `break` verwenden:
123+
124+
- `continue` weist Ihr Bash-Skript an, die aktuelle Iteration der Schleife zu stoppen und die nächste Iteration zu starten.
125+
126+
Die Syntax der continue-Anweisung lautet wie folgt:
127+
128+
```bash
129+
continue [n]
130+
```
131+
132+
Das Argument [n] ist optional und kann größer oder gleich 1 sein. Wenn [n] angegeben wird, wird die n-te umschließende Schleife fortgesetzt. continue 1 ist gleichbedeutend mit continue.
133+
134+
```bash
135+
#!/bin/bash
136+
137+
for i in 1 2 3 4 5
138+
do
139+
if [[ $i –eq 2 ]]
140+
then
141+
echo "ueberspringe nummer 2"
142+
continue
143+
fi
144+
echo "i ist gleich $i"
145+
done
146+
```
147+
148+
Wir können den Continue-Befehl auch auf ähnliche Weise wie den Break-Befehl verwenden, um mehrere Schleifen zu steuern.
149+
150+
- `break` weist Ihr Bash-Skript an, die Schleife sofort zu beenden.
151+
152+
Die Syntax der break-Anweisung sieht wie folgt aus:
153+
154+
```bash
155+
break [n]
156+
```
157+
158+
[n] ist ein optionales Argument und muss größer oder gleich 1 sein. Wenn [n] angegeben wird, wird die n-te umschließende Schleife verlassen. Pause 1 entspricht Pause.
159+
160+
Beispiel:
161+
162+
```bash
163+
#!/bin/bash
164+
165+
num=1
166+
while [[ $num –lt 10 ]]
167+
do
168+
if [[ $num –eq 5 ]]
169+
then
170+
break
171+
fi
172+
((num++))
173+
done
174+
echo "Schleife abgeschlossen"
175+
```
176+
177+
Wir können den Befehl break auch mit mehreren Schleifen verwenden. Wenn wir die aktuelle Arbeitsschleife verlassen möchten, egal ob innere oder äußere Schleife, verwenden wir einfach break. Wenn wir uns jedoch in der inneren Schleife befinden und die äußere Schleife verlassen möchten, verwenden wir break 2.
178+
179+
Beispiel:
180+
181+
```bash
182+
#!/bin/bash
183+
184+
for (( a = 1; a < 10; a++ ))
185+
do
186+
echo "Schleife außen: $a"
187+
for (( b = 1; b < 100; b++ ))
188+
do
189+
if [[ $b –gt 5 ]]
190+
then
191+
break 2
192+
fi
193+
echo "Schleife innen: $b "
194+
done
195+
done
196+
```
197+
198+
Das Bash-Skript beginnt mit a=1 und wechselt zur inneren Schleife. Wenn es b=5 erreicht, wird die äußere Schleife unterbrochen.
199+
Wir können nur `break` anstelle von `break 2` verwenden, um die innere Schleife zu unterbrechen und zu sehen, wie sich dies auf die Ausgabe auswirkt.
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# Bash Funktionen
2+
3+
Funktionen sind eine großartige Möglichkeit, Code wiederzuverwenden. Die Struktur einer Funktion in Bash ist den meisten Sprachen ziemlich ähnlich:
4+
5+
```bash
6+
function funktion_name() {
7+
ihre_befehle
8+
}
9+
```
10+
11+
Sie können das Schlüsselwort „function“ auch am Anfang weglassen, was ebenfalls funktionieren würde:
12+
13+
```bash
14+
funktion_name() {
15+
ihre_befehle
16+
}
17+
```
18+
19+
Ich bevorzuge, es dort zu platzieren, um die Lesbarkeit zu verbessern. Aber es ist eine Frage der persönlichen Präferenz.
20+
21+
Beispiel einer „Hello World!“ Funktion:
22+
23+
```bash
24+
#!/bin/bash
25+
26+
function hello() {
27+
echo "Hello World Function!"
28+
}
29+
30+
hello
31+
```
32+
33+
> {notice} Beachten Sie, dass Sie beim Aufruf der Funktion keine Klammern hinzufügen sollten.
34+
35+
Die Übergabe von Argumenten an eine Funktion funktioniert auf die gleiche Weise, wie die Übergabe von Argumenten an ein Skript:
36+
37+
```bash
38+
#!/bin/bash
39+
40+
function hello() {
41+
echo "Hello $1!"
42+
}
43+
44+
hello DevDojo
45+
```
46+
47+
Funktionen sollten Kommentare enthalten, in denen Beschreibung, globale Variablen, Argumente, Ausgaben und ggf. zurückgegebene Werte erwähnt werden. (Kommentare werden i.d.R. in Englisch verfasst, weshalb das Beispiel so beibehalten wird)
48+
49+
```bash
50+
#######################################
51+
# Description: Hello Function
52+
# Globals:
53+
# None
54+
# Arguments:
55+
# Single input argument
56+
# Outputs:
57+
# Value of input argument
58+
# Returns:
59+
# 0 if successful, non-zero on error.
60+
#######################################
61+
function hello() {
62+
echo "Hello $1!"
63+
}
64+
```
65+
66+
In den nächsten Kapiteln werden wir häufig Funktionen verwenden!

0 commit comments

Comments
 (0)