Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
modul:m122:learningunits:lu07:funktionen [2024/11/26 06:36] – angelegt msutermodul:m122:learningunits:lu07:funktionen [2024/12/12 09:24] (aktuell) – [Variablen in Funktionen] msuter
Zeile 1: Zeile 1:
 ====== LU07a - Funktion definieren ====== ====== LU07a - Funktion definieren ======
-### Einführung in Funktionen in Bash+[[https://openbook.rheinwerk-verlag.de/shell_programmierung/shell_008_000.htm|ShellProg - Kapitel 6.1]]
  
 +<WRAP center round todo 60%>
 Funktionen in Bash sind eine Möglichkeit, wiederverwendbaren Code zu schreiben. Sie ermöglichen es, eine Gruppe von Befehlen in einer benannten Einheit zu bündeln, die an beliebiger Stelle im Skript aufgerufen werden kann. Das verbessert die Lesbarkeit und Wartbarkeit von Shell-Skripten. Funktionen in Bash sind eine Möglichkeit, wiederverwendbaren Code zu schreiben. Sie ermöglichen es, eine Gruppe von Befehlen in einer benannten Einheit zu bündeln, die an beliebiger Stelle im Skript aufgerufen werden kann. Das verbessert die Lesbarkeit und Wartbarkeit von Shell-Skripten.
  
-#### Definition einer Funktion +</WRAP>
-Funktionen werden in Bash folgendermaßen definiert:+
  
-```bash+===== Definition einer Funktion ===== 
 +Funktionen werden in Bash folgendermassen definiert: 
 + 
 +<code bash>
 function name { function name {
     # Befehle     # Befehle
 } }
-```+</code>
  
 Alternativ kannst du die `function`-Schlüsselwort weglassen: Alternativ kannst du die `function`-Schlüsselwort weglassen:
  
-```bash+<code bash>
 name() { name() {
     # Befehle     # Befehle
 } }
-```+</code> 
 + 
 +===== Aufrufen einer Funktion =====
  
-#### Aufrufen einer Funktion 
 Eine Funktion wird durch ihren Namen aufgerufen, ohne Klammern: Eine Funktion wird durch ihren Namen aufgerufen, ohne Klammern:
-```bash+<code bash>
 name name
-```+</code> 
 + 
 +==== Beispiel ====
  
-#### Beispiel 
 Hier ist ein einfaches Beispiel, das eine Funktion namens `greet` definiert: Hier ist ein einfaches Beispiel, das eine Funktion namens `greet` definiert:
  
-```bash+<code bash>
 #!/bin/bash #!/bin/bash
  
Zeile 38: Zeile 43:
  
 greet "Welt"  # Aufruf der Funktion mit einem Argument greet "Welt"  # Aufruf der Funktion mit einem Argument
-```+</code>
  
 **Ausgabe:** **Ausgabe:**
-```+<code>
 Hallo, Welt! Hallo, Welt!
-```+</code> 
 + 
 +<WRAP center round tip 60%> 
 +Beachte, dass die Definition der Funktion **vor** dem Aufruf stehen muss. 
 +</WRAP> 
 + 
 + 
 +===== Parameter in Funktionen =====
  
-#### Parameter in Funktionen 
 Funktionen können Argumente wie Skripte selbst annehmen. Diese werden mit `$1`, `$2` usw. innerhalb der Funktion referenziert, wobei `$0` der Name des Skripts ist. Funktionen können Argumente wie Skripte selbst annehmen. Diese werden mit `$1`, `$2` usw. innerhalb der Funktion referenziert, wobei `$0` der Name des Skripts ist.
  
-#### Rückgabewerte+===== Rückgabewerte ===== 
 Funktionen können numerische Rückgabewerte verwenden, die mit dem Befehl `return` gesetzt werden: Funktionen können numerische Rückgabewerte verwenden, die mit dem Befehl `return` gesetzt werden:
-```bash+<code bash>
 summe() { summe() {
     return $(($1 + $2))     return $(($1 + $2))
Zeile 57: Zeile 69:
 summe 3 5 summe 3 5
 echo $?  # Gibt 8 aus echo $?  # Gibt 8 aus
-```+</code>
  
 Nicht-numerische Werte können über `echo` zurückgegeben und mit Command Substitution (`$(...)`) erfasst werden: Nicht-numerische Werte können über `echo` zurückgegeben und mit Command Substitution (`$(...)`) erfasst werden:
-```bash+<code bash>
 get_date() { get_date() {
     echo $(date)     echo $(date)
Zeile 67: Zeile 79:
 current_date=$(get_date) current_date=$(get_date)
 echo "Aktuelles Datum: $current_date" echo "Aktuelles Datum: $current_date"
-```+</code> 
 + 
 +===== Variablen in Funktionen ===== 
 +In Bash sind alle Variablen standardmässig als ''global'' definiert. 
 +Daher kann jeder Teil eines Bash-Scripts, auch Funktionen, auf alle Variablen zugreifen. 
 +Wir können jedoch eine Variable innerhalb der Funktion als ''local'' definieren. 
 +Dadurch vermeiden wir Konflikte mit anderen Variablen, die den gleichen Bezeichner haben. 
 + 
 +| <code bash> 
 +function doIt() { 
 +  text = 'World' 
 +
 + 
 +text = 'Universe' 
 +doIt 
 +echo "Hello $text" 
 +</code> | <code bash> 
 +function doIt() { 
 +  local text = 'World' 
 +
 + 
 +text = 'Universe' 
 +doIt 
 +echo "Hello $text" 
 +</code>
 +| Hello World | Hello Universe |
  
-Mit Funktionen in Bash lassen sich also Skripte modularer und effizienter gestalten. 
  • modul/m122/learningunits/lu07/funktionen.1732599361.txt.gz
  • Zuletzt geändert: 2024/11/26 06:36
  • von msuter