Bash Variablen: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Die Seite wurde neu angelegt: „==Skalare Variablen== Eine Variable stellt einen Platzhalter dar. Man spricht von Variablensubstitution, wenn anstatt der Variablen deren Wert bzw. Inhalt aus…“) |
|||
| (20 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| − | == | + | = Variablen allgemein = |
| − | Eine Variable | + | * In der Bash-Shell können Variablen verwendet werden, um Daten zu speichern und auf sie zuzugreifen. |
| − | + | * Eine Variable wird mit einem Namen definiert und kann einen beliebigen Wert enthalten, z. B. eine Zeichenkette, eine Zahl oder eine Liste von Werten. | |
| − | + | * Variablen in Bash werden in der Regel ohne explizite Typdeklaration erstellt und können jederzeit neu zugewiesen werden. | |
| − | + | * Der Wert einer Variable kann mithilfe des Zuweisungsoperators '''=''' festgelegt und durch den Variablennamen abgerufen werden. | |
| + | * Es gibt auch vordefinierte Umgebungsvariablen in Bash, die Informationen über das System oder die Shell selbst enthalten (z. B. Benutzername, aktuelles Arbeitsverzeichnis oder Hostname). | ||
| + | * Variablen können in Befehlen und Skripten verwendet werden, um die Flexibilität und Wiederverwendbarkeit von Code zu verbessern. | ||
| − | Die Definition einer Variablen erfolgt durch | + | = Skalare Variablen = |
| − | + | * Eine Variable stellt einen Platzhalter dar. | |
| − | stehen. | + | * Man spricht von Variablensubstitution, wenn anstelle der Variablen deren Wert ausgegeben wird. |
| + | * Eine Variable muss – im Gegensatz zu kompilierten Programmiersprachen – nicht deklariert werden. | ||
| + | * Der Interpreter allokiert den Speicherplatz zur Laufzeit. | ||
| + | * Die Definition einer Variablen erfolgt durch Nennung, gefolgt von '''=''' und dem zugewiesenen Wert. | ||
| + | * Wichtig: Zwischen Variablenname, '''=''' und Wert darf kein Leerzeichen stehen. | ||
| + | * Es werden häufig Großbuchstaben verwendet; Bindestriche sollten vermieden werden. | ||
| − | Definition | + | == Definition einer Variablen == |
| − | *GLAS=bier | + | * '''GLAS=bier''' |
| − | Ausgabe des Variableninhalts | + | |
| − | *echo $GLAS | + | Ausgabe des Variableninhalts: |
| + | * '''echo $GLAS''' | ||
bier | bier | ||
| − | + | ||
| − | *UNIXSYSTEM=/usr | + | == Beispiel einer Variablensubstitution == |
| − | + | * '''UNIXSYSTEM=/usr''' | |
| − | *ls -ld | + | * '''ls -ld $UNIXSYSTEM''' |
drwxr-xr-x 11 root root 4096 2008-10-29 23:58 /usr | drwxr-xr-x 11 root root 4096 2008-10-29 23:58 /usr | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | = Feldvariablen (Arrays) = | |
| − | + | * In Bash können Feldvariablen (Arrays) verwendet werden, um mehrere Werte unter einem gemeinsamen Namen zu speichern. | |
| − | + | * Arrays werden über Indizes angesprochen und erlauben den Zugriff auf mehrere Elemente innerhalb einer Variablen. | |
| − | * | ||
| − | |||
| − | * | ||
| − | |||
| − | == | + | == Definition == |
| − | + | * '''farbe=(blau gelb gruen rot)''' | |
| − | |||
| − | |||
| − | + | == Ausgabe einzelner Elemente == | |
| − | + | * '''echo ${farbe[0]}''' → blau | |
| − | + | * '''echo ${farbe[1]}''' → gelb | |
| − | + | * '''echo ${farbe[2]}''' → gruen | |
| − | *echo $ | + | * '''echo ${farbe[3]}''' → rot |
| − | |||
| − | *echo ${ | ||
| − | |||
| − | |||
| − | |||
| − | *echo ${ | ||
| − | |||
| − | *echo ${ | ||
| − | |||
| − | = | + | = Assoziative Arrays = |
| − | + | * Assoziative Arrays sind Schlüssel/Wert-Paare und werden ab Bash 4 unterstützt. | |
| − | + | * Sie werden mit '''declare -A''' deklariert. | |
| − | + | * Zugriff erfolgt über den Schlüssel: '''${array[key]}'''. | |
| − | * | ||
| − | |||
| − | |||
| − | * | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | <syntaxhighlight lang=bash> | |
| − | + | #!/bin/bash | |
| + | declare -A fruits | ||
| + | fruits["apple"]="red" | ||
| + | fruits["banana"]="yellow" | ||
| + | fruits["orange"]="orange" | ||
| − | + | echo ${fruits["apple"]} | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | fruits["grape"]="purple" | |
| − | + | for key in "${!fruits[@]}"; do | |
| − | + | echo "$key is ${fruits[$key]}" | |
| − | + | done | |
| − | + | </syntaxhighlight> | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | = Der Exportbefehl = | |
| − | * | + | * Variablen werden nicht automatisch an Kindprozesse weitergegeben. |
| − | * | + | * Mit '''export''' werden sie in die Prozessumgebung übernommen, um beim Forken auch im Kindprozess verfügbar zu sein. |
| − | + | * Alle exportierten Variablen können mit '''printenv''' oder '''env''' angezeigt werden. | |
| − | * | + | * Alle Shellvariablen (auch nicht exportierte) werden mit '''set''' angezeigt. |
| − | * | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | = Kommandosubstitution = | |
| − | + | * Die Kommandosubstitution ermöglicht, den Ausgabewert eines Befehls in einer Variablen zu speichern oder in einen anderen Befehl einzufügen. | |
| + | * Zwei Varianten: | ||
| + | ** '''$(Befehl)''' – moderne Variante, unterstützt Schachtelung | ||
| + | ** ```Befehl``` – ältere Variante (Backticks) | ||
| − | + | Beispiele: | |
| − | *echo $ | + | * '''cd $(echo /home/$(whoami))''' |
| − | + | * '''cd `echo /home/`whoami``` | |
| − | + | * '''MOMENT=$(date -u "+%X")''' | |
| − | * $ | + | * '''echo $MOMENT''' → 09:29:58 |
| − | + | = Abgrenzen von Variablen = | |
| + | * Ein Dollarzeichen '''$''' leitet eine Variablenreferenz oder Parameterexpansion ein. | ||
| + | * Geschweifte Klammern '''${...}''' dienen zur Gruppierung. | ||
| − | * | + | == Beispiele == |
| − | * | + | * '''SUX=eins''' |
| − | + | * '''TUX=zwei''' | |
| + | * '''SUXTUX=drei''' | ||
| − | * ${ | + | * '''echo $SUX''' → eins |
| − | + | * '''echo ${SUX}TUX''' → einsTUX | |
| + | * '''echo ${SUX}${TUX}''' → einszwei | ||
| − | * | + | = Weitere Mechanismen zur Parameterexpansion = |
| − | * | + | * Diese Mechanismen manipulieren Variableninhalte. |
| − | + | * '''FARBE''' steht dabei für den Variablennamen, '''rot''' für eine Zeichenkette oder andere Variable. | |
| − | * ${FARBE#rot} | + | == Beispiele == |
| + | * '''${FARBE:-rot}''' – Standardwert, wenn nicht gesetzt | ||
| + | * '''${FARBE:=rot}''' – wie oben, zusätzlich wird FARBE belegt | ||
| + | * '''${FARBE:?keine farbe}''' – Fehlermeldung, wenn FARBE nicht definiert | ||
| + | * '''${FARBE:+rot}''' – liefert „rot“, wenn FARBE definiert ist | ||
| + | * '''${FARBE:3}''' – Ausgabe ab Position 3 | ||
| + | * '''${FARBE:5:3}''' – Ausgabe von 3 Zeichen ab Position 5 | ||
| + | * '''${#FARBE}''' – Länge der Variablen | ||
| + | * '''${FARBE#rot}''' – entfernt „rot“ am Anfang | ||
| + | * '''${PROGRAM##*/}''' – entfernt längstmöglich alles bis zum letzten Slash | ||
| + | * '''${FARBE%weis}''' – entfernt „weis“ am Ende | ||
| + | * '''${FARBE%%o*}''' – entfernt längstmöglich ab „o“ | ||
| + | * '''${FARBE/rot/blau}''' – ersetzt erstes „rot“ durch „blau“ | ||
| + | * '''${FARBE//rot/blau}''' – ersetzt alle „rot“ durch „blau“ | ||
| − | + | = Wichtige Systemvariablen (Auswahl) = | |
| − | + | ; PATH | |
| − | + | Pfad, in dem nach ausführbaren Programmen gesucht wird | |
| − | + | ; HOME | |
| − | + | Heimatverzeichnis | |
| + | ; BASH | ||
| + | Pfadname der aktuellen Shell | ||
| + | ; PWD | ||
| + | Aktuelles Verzeichnis | ||
| + | ; OLDPWD | ||
| + | Vorheriges Verzeichnis | ||
| + | ; PS1, PS2, PS3 | ||
| + | Eingabeprompts 1 – 3 | ||
| + | ; UID | ||
| + | Benutzerkennung | ||
| + | ; EDITOR | ||
| + | Standardeditor (meist vi) | ||
| + | ; MAIL | ||
| + | Pfad zum Postfach | ||
| + | ; HOSTNAME | ||
| + | Name des Rechners | ||
| − | * $ | + | = Stellungsparameter (spezielle Variablen) = |
| + | * Den Stellungsparametern '''$1, $2, …, $9''' werden bei der Definition Werte nach ihrer Reihenfolge zugewiesen. | ||
| + | * Der Geltungsbereich ist lokal – sie gelten nur in der aktuellen Bash und können nicht exportiert werden. | ||
| − | + | == Belegen mittels set == | |
| − | * | + | * '''set der fck ist eine klasse Mannschaft''' |
| − | *echo $ | + | * '''echo $1 $2 $3''' → der fck ist |
| − | + | * '''echo $5 $6 $7''' → eine klasse Mannschaft | |
| − | *echo $ | + | * '''set unser fcs ist aber auch ok''' |
| − | + | * '''echo $1 $2 $3''' → unser fcs ist | |
| − | * $ | + | == Belegen durch Skriptaufruf == |
| + | * '''cat skript1''' | ||
| + | <syntaxhighlight lang="bash"> | ||
| + | #!/bin/bash | ||
| + | echo "1. Parameter $1" | ||
| + | echo "2. Parameter $2" | ||
| + | echo "3. Parameter $3" | ||
| + | echo "4. Parameter $4" | ||
| + | echo "alle Parameter $*" | ||
| + | echo "alle Parameter $@" | ||
| + | echo "Anzahl Parameter $#" | ||
| + | echo "Skriptname $0" | ||
| + | echo "PID des Skripts $$" | ||
| + | echo "Rückgabewert letztes Kommando $?" | ||
| + | </syntaxhighlight> | ||
| − | + | * '''./skript1 blau gruen gelb rot''' | |
| − | + | = Systemparameter = | |
| − | * | + | {| border=1 cellpadding="2" |
| − | + | | $$ | |
| + | | PID des laufenden Prozesses | ||
| + | |- | ||
| + | | $! | ||
| + | | PID des letzten Hintergrundprozesses | ||
| + | |- | ||
| + | | $- | ||
| + | | Liste der für die Bash gesetzten Optionen | ||
| + | |- | ||
| + | | $? | ||
| + | | Exit-Status des letzten Kommandos | ||
| + | |- | ||
| + | | $# | ||
| + | | Anzahl der Stellungsparameter | ||
| + | |- | ||
| + | | $* | ||
| + | | Liste aller Stellungsparameter | ||
| + | |- | ||
| + | | $0 | ||
| + | | Aktueller Prozessname | ||
| + | |} | ||
| − | * $ | + | = shift-Kommando = |
| + | * Verschiebt alle Stellungsparameter um eine Stelle nach links. | ||
| + | * Beispiel: | ||
| + | ** '''set hallo ihr guten admins von der schule hier''' | ||
| + | ** '''echo $1 $2 $3 $4''' → hallo ihr guten admins | ||
| + | ** '''shift''' | ||
| + | ** '''echo $1 $2 $3 $4''' → ihr guten admins von | ||
| + | ** '''shift 3''' | ||
| + | ** '''echo $1 $2 $3 $4''' → von der schule hier | ||
| − | + | = Aufgaben = | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | * | + | == Skalare Variablen == |
| + | * Ordnen Sie der Variablen '''GLAS''' den Wert '''bier''' zu. | ||
| + | * Geben Sie den Wert der Variablen aus. | ||
| + | * Ordnen Sie einer beliebigen Variablen den Pfad zu einem Verzeichnis zu. | ||
| + | * Lassen Sie sich über den Variablenwert den Inhalt dieses Verzeichnisses anzeigen. | ||
| − | + | == Feldvariablen == | |
| + | * Ordnen Sie der Variablen '''FARBE''' die Werte '''schwarz''', '''rot''' und '''gold''' zu. | ||
| + | * Geben Sie jeden Wert einzeln aus. | ||
| − | * | + | == Kommandosubstitution == |
| + | * Definieren Sie den Begriff Kommandosubstitution. | ||
| + | * Nennen Sie beide Varianten der Kommandosubstitution. | ||
| + | * Was ist der Unterschied? | ||
| + | * Ordnen Sie die Ausgabe von '''date''' einer beliebigen Variablen zu. | ||
| + | * Wie kann man mit '''whoami''' in sein Home-Verzeichnis wechseln? | ||
| − | + | == Abgrenzen von Variablen (Parameterexpansion) == | |
| + | * Definieren Sie drei Variablen, wobei die dritte sich aus den ersten beiden zusammensetzt (z. B. SUX, TUX, SUXTUX). | ||
| + | * Geben Sie diese Variablen in allen Abgrenzungsformen wieder. | ||
| − | *FARBE= | + | == Weitere Mechanismen zur Parameterexpansion == |
| − | *echo ${FARBE | + | ; Beschreiben Sie, was bei folgenden Parameterexpansionen passiert: |
| − | + | * '''echo ${FARBE:-rot}''' | |
| − | *echo ${FARBE | + | * '''echo ${FARBE:=rot}''' |
| − | + | * '''echo ${FARBE:?keine farbe}''' | |
| + | * '''echo ${FARBE:+rot}''' | ||
| + | * '''echo ${FARBE:3}''' | ||
| + | * '''echo ${FARBE:5:3}''' | ||
| + | * '''echo ${#FARBE}''' | ||
| + | * '''echo ${FARBE#rot}''' | ||
| + | * '''echo ${PROGRAM#*/}''' | ||
| + | * '''echo ${FARBE%weis}''' | ||
| + | * '''echo ${FARBE%o*}''' | ||
| + | * '''echo ${FARBE/rot/blau}''' | ||
Aktuelle Version vom 12. Oktober 2025, 19:29 Uhr
Variablen allgemein
- In der Bash-Shell können Variablen verwendet werden, um Daten zu speichern und auf sie zuzugreifen.
- Eine Variable wird mit einem Namen definiert und kann einen beliebigen Wert enthalten, z. B. eine Zeichenkette, eine Zahl oder eine Liste von Werten.
- Variablen in Bash werden in der Regel ohne explizite Typdeklaration erstellt und können jederzeit neu zugewiesen werden.
- Der Wert einer Variable kann mithilfe des Zuweisungsoperators = festgelegt und durch den Variablennamen abgerufen werden.
- Es gibt auch vordefinierte Umgebungsvariablen in Bash, die Informationen über das System oder die Shell selbst enthalten (z. B. Benutzername, aktuelles Arbeitsverzeichnis oder Hostname).
- Variablen können in Befehlen und Skripten verwendet werden, um die Flexibilität und Wiederverwendbarkeit von Code zu verbessern.
Skalare Variablen
- Eine Variable stellt einen Platzhalter dar.
- Man spricht von Variablensubstitution, wenn anstelle der Variablen deren Wert ausgegeben wird.
- Eine Variable muss – im Gegensatz zu kompilierten Programmiersprachen – nicht deklariert werden.
- Der Interpreter allokiert den Speicherplatz zur Laufzeit.
- Die Definition einer Variablen erfolgt durch Nennung, gefolgt von = und dem zugewiesenen Wert.
- Wichtig: Zwischen Variablenname, = und Wert darf kein Leerzeichen stehen.
- Es werden häufig Großbuchstaben verwendet; Bindestriche sollten vermieden werden.
Definition einer Variablen
- GLAS=bier
Ausgabe des Variableninhalts:
- echo $GLAS
bier
Beispiel einer Variablensubstitution
- UNIXSYSTEM=/usr
- ls -ld $UNIXSYSTEM
drwxr-xr-x 11 root root 4096 2008-10-29 23:58 /usr
Feldvariablen (Arrays)
- In Bash können Feldvariablen (Arrays) verwendet werden, um mehrere Werte unter einem gemeinsamen Namen zu speichern.
- Arrays werden über Indizes angesprochen und erlauben den Zugriff auf mehrere Elemente innerhalb einer Variablen.
Definition
- farbe=(blau gelb gruen rot)
Ausgabe einzelner Elemente
- echo ${farbe[0]} → blau
- echo ${farbe[1]} → gelb
- echo ${farbe[2]} → gruen
- echo ${farbe[3]} → rot
Assoziative Arrays
- Assoziative Arrays sind Schlüssel/Wert-Paare und werden ab Bash 4 unterstützt.
- Sie werden mit declare -A deklariert.
- Zugriff erfolgt über den Schlüssel: ${array[key]}.
#!/bin/bash
declare -A fruits
fruits["apple"]="red"
fruits["banana"]="yellow"
fruits["orange"]="orange"
echo ${fruits["apple"]}
fruits["grape"]="purple"
for key in "${!fruits[@]}"; do
echo "$key is ${fruits[$key]}"
done
Der Exportbefehl
- Variablen werden nicht automatisch an Kindprozesse weitergegeben.
- Mit export werden sie in die Prozessumgebung übernommen, um beim Forken auch im Kindprozess verfügbar zu sein.
- Alle exportierten Variablen können mit printenv oder env angezeigt werden.
- Alle Shellvariablen (auch nicht exportierte) werden mit set angezeigt.
Kommandosubstitution
- Die Kommandosubstitution ermöglicht, den Ausgabewert eines Befehls in einer Variablen zu speichern oder in einen anderen Befehl einzufügen.
- Zwei Varianten:
** $(Befehl) – moderne Variante, unterstützt Schachtelung ** ```Befehl``` – ältere Variante (Backticks)
Beispiele:
- cd $(echo /home/$(whoami))
- cd `echo /home/`whoami```
- MOMENT=$(date -u "+%X")
- echo $MOMENT → 09:29:58
Abgrenzen von Variablen
- Ein Dollarzeichen $ leitet eine Variablenreferenz oder Parameterexpansion ein.
- Geschweifte Klammern ${...} dienen zur Gruppierung.
Beispiele
- SUX=eins
- TUX=zwei
- SUXTUX=drei
- echo $SUX → eins
- echo ${SUX}TUX → einsTUX
- echo ${SUX}${TUX} → einszwei
Weitere Mechanismen zur Parameterexpansion
- Diese Mechanismen manipulieren Variableninhalte.
- FARBE steht dabei für den Variablennamen, rot für eine Zeichenkette oder andere Variable.
Beispiele
- ${FARBE:-rot} – Standardwert, wenn nicht gesetzt
- ${FARBE:=rot} – wie oben, zusätzlich wird FARBE belegt
- ${FARBE:?keine farbe} – Fehlermeldung, wenn FARBE nicht definiert
- ${FARBE:+rot} – liefert „rot“, wenn FARBE definiert ist
- ${FARBE:3} – Ausgabe ab Position 3
- ${FARBE:5:3} – Ausgabe von 3 Zeichen ab Position 5
- ${#FARBE} – Länge der Variablen
- ${FARBE#rot} – entfernt „rot“ am Anfang
- ${PROGRAM##*/} – entfernt längstmöglich alles bis zum letzten Slash
- ${FARBE%weis} – entfernt „weis“ am Ende
- ${FARBE%%o*} – entfernt längstmöglich ab „o“
- ${FARBE/rot/blau} – ersetzt erstes „rot“ durch „blau“
- ${FARBE//rot/blau} – ersetzt alle „rot“ durch „blau“
Wichtige Systemvariablen (Auswahl)
- PATH
Pfad, in dem nach ausführbaren Programmen gesucht wird
- HOME
Heimatverzeichnis
- BASH
Pfadname der aktuellen Shell
- PWD
Aktuelles Verzeichnis
- OLDPWD
Vorheriges Verzeichnis
- PS1, PS2, PS3
Eingabeprompts 1 – 3
- UID
Benutzerkennung
- EDITOR
Standardeditor (meist vi)
Pfad zum Postfach
- HOSTNAME
Name des Rechners
Stellungsparameter (spezielle Variablen)
- Den Stellungsparametern $1, $2, …, $9 werden bei der Definition Werte nach ihrer Reihenfolge zugewiesen.
- Der Geltungsbereich ist lokal – sie gelten nur in der aktuellen Bash und können nicht exportiert werden.
Belegen mittels set
- set der fck ist eine klasse Mannschaft
- echo $1 $2 $3 → der fck ist
- echo $5 $6 $7 → eine klasse Mannschaft
- set unser fcs ist aber auch ok
- echo $1 $2 $3 → unser fcs ist
Belegen durch Skriptaufruf
- cat skript1
#!/bin/bash
echo "1. Parameter $1"
echo "2. Parameter $2"
echo "3. Parameter $3"
echo "4. Parameter $4"
echo "alle Parameter $*"
echo "alle Parameter $@"
echo "Anzahl Parameter $#"
echo "Skriptname $0"
echo "PID des Skripts $$"
echo "Rückgabewert letztes Kommando $?"
- ./skript1 blau gruen gelb rot
Systemparameter
| $$ | PID des laufenden Prozesses |
| $! | PID des letzten Hintergrundprozesses |
| $- | Liste der für die Bash gesetzten Optionen |
| $? | Exit-Status des letzten Kommandos |
| $# | Anzahl der Stellungsparameter |
| $* | Liste aller Stellungsparameter |
| $0 | Aktueller Prozessname |
shift-Kommando
- Verschiebt alle Stellungsparameter um eine Stelle nach links.
- Beispiel:
** set hallo ihr guten admins von der schule hier ** echo $1 $2 $3 $4 → hallo ihr guten admins ** shift ** echo $1 $2 $3 $4 → ihr guten admins von ** shift 3 ** echo $1 $2 $3 $4 → von der schule hier
Aufgaben
Skalare Variablen
- Ordnen Sie der Variablen GLAS den Wert bier zu.
- Geben Sie den Wert der Variablen aus.
- Ordnen Sie einer beliebigen Variablen den Pfad zu einem Verzeichnis zu.
- Lassen Sie sich über den Variablenwert den Inhalt dieses Verzeichnisses anzeigen.
Feldvariablen
- Ordnen Sie der Variablen FARBE die Werte schwarz, rot und gold zu.
- Geben Sie jeden Wert einzeln aus.
Kommandosubstitution
- Definieren Sie den Begriff Kommandosubstitution.
- Nennen Sie beide Varianten der Kommandosubstitution.
- Was ist der Unterschied?
- Ordnen Sie die Ausgabe von date einer beliebigen Variablen zu.
- Wie kann man mit whoami in sein Home-Verzeichnis wechseln?
Abgrenzen von Variablen (Parameterexpansion)
- Definieren Sie drei Variablen, wobei die dritte sich aus den ersten beiden zusammensetzt (z. B. SUX, TUX, SUXTUX).
- Geben Sie diese Variablen in allen Abgrenzungsformen wieder.
Weitere Mechanismen zur Parameterexpansion
- Beschreiben Sie, was bei folgenden Parameterexpansionen passiert
- echo ${FARBE:-rot}
- echo ${FARBE:=rot}
- echo ${FARBE:?keine farbe}
- echo ${FARBE:+rot}
- echo ${FARBE:3}
- echo ${FARBE:5:3}
- echo ${#FARBE}
- echo ${FARBE#rot}
- echo ${PROGRAM#*/}
- echo ${FARBE%weis}
- echo ${FARBE%o*}
- echo ${FARBE/rot/blau}