Einfache Shellsonderzeichen: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(10 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
== Was ist das? ==
* Shellsonderzeichen sind spezielle Zeichen, die in der Bash-Shell eine besondere Bedeutung haben und verwendet werden, um bestimmte Aktionen oder Funktionen auszuführen.
* Ein Beispiel für ein Shellsonderzeichen ist das Dollarzeichen '''$''', das verwendet wird, um auf den Wert einer Variablen zuzugreifen oder Befehlsersetzung durchzuführen.
* Ein weiteres Shellsonderzeichen sind die Anführungszeichen ('''"''', ''''''''''), die verwendet werden, um Zeichenketten zu definieren und festzulegen, welche Teile als Text oder Variableninterpretation behandelt werden sollen.
* Das Pipe-Symbol '''|''' wird verwendet, um die Ausgabe eines Befehls an einen anderen Befehl weiterzuleiten und so die Verarbeitung von Datenketten (Pipelines) zu ermöglichen.
* Shellsonderzeichen sind ein wesentlicher Bestandteil des Shell-Skriptings und ermöglichen es, komplexe Aufgaben durch Kombination und Manipulation von Befehlen, Variablen und Datenströmen auszuführen.
== Tabelle ==
{| class="wikitable" border="1" cellpadding="2"
{| class="wikitable" border="1" cellpadding="2"
|-
|-
|;
! Zeichen
|Trenne Kommandos
! Bedeutung
|-
|-
|#
| ;
|Kommentar
| Trennt Kommandos (werden nacheinander ausgeführt)
|-
|-
|&
| #
|Programm im Hintergrund starten
| Kommentar
|-
|-
|<nowiki>|</nowiki>
| &
|STDOUT von links wird zu STDIN von rechts
| Programm im Hintergrund starten
|-
|-
|*
| <nowiki>|</nowiki>
|steht für beliebig viel Zeichen auch 0
| STDOUT von links wird zu STDIN von rechts weitergeleitet
|-
|-
|?
| *
|steht für genau ein Zeichen  
| Steht für beliebig viele Zeichen (auch 0)
|-
|-
|[abc]
| ?
|steht für eins der Zeichen in [ ] hier a b oder c
| Steht für genau ein Zeichen
|-
|-
|~
| [abc]
|das Homeverzeichnis
| Steht für eines der Zeichen in [ ], hier '''a''', '''b''' oder '''c'''
|-
|-
|>    und    >>
| ~
|leite in Datei um  >  überschreibe    >> hänge an
| Das Homeverzeichnis
|-
|-
|<
| >  und  >>
|lesen aus Datei  
| Leitet Ausgabe in eine Datei um – '''>''' überschreibt, '''>>''' hängt an
|-
|-
|2>&1
| <
|leite STDERR auf STDOUT
| Lesen aus Datei
|-
|-
|<< ende
| 2>&1
|Lesen aus Datei (Heredokument)
| Leitet '''STDERR''' auf '''STDOUT''' um
|-
|-
|{ ,  ,  , }
| << Ende
|Zeichenketten zusammensetzen
| Lesen bis zur Markierung (Here-Document)
|-
|-
|"..."
| { , , , }
|Entwertung der Sonderzeichen ausser $ ' \
| Zeichenketten oder Werte kombinieren (Brace Expansion)
|-
|-
|'...'
| !!
|Entwertung sämtlicher Sonderzeichen ausser ' selbst
| Führt den letzten Befehl erneut aus
|-
|-
|\ 
| !$
|Entwertung des folgenden Sonderzeichens
| Fügt das letzte Argument des letzten Befehls ein
|-
|-
| "..."
| Entwertet Sonderzeichen außer '''$''', '''' ''', '''\''' und '''!'''
|-
| '...'
| Entwertet alle Sonderzeichen außer '''' ''' selbst
|-
| \
| Entwertet (escaped) das folgende Sonderzeichen
|-
| }
| Schließt eine Blockstruktur (z. B. Funktion oder Codeblock)
|}
|}
== Aufgaben ==
== Aufgabe 1 – Sonderzeichen im Einsatz ==
* Experimentieren Sie mit den folgenden Befehlen:
** '''echo $USER'''
** '''echo "$USER"'''
** '''echo '$USER' ''' 
** '''echo \$USER'''
** Was stellen Sie fest?
== Aufgabe 2 – Jokerzeichen (Wildcards) ==
* Erstellen Sie Testdateien (''a1.txt'', ''a2.txt'', ''b1.txt'').
* Testen Sie die folgenden Kommandos und notieren Sie die Unterschiede:
** '''ls a*.txt'''
** '''ls ?.txt'''
** '''ls [ab]1.txt'''

Aktuelle Version vom 12. November 2025, 13:14 Uhr

Was ist das?

  • Shellsonderzeichen sind spezielle Zeichen, die in der Bash-Shell eine besondere Bedeutung haben und verwendet werden, um bestimmte Aktionen oder Funktionen auszuführen.
  • Ein Beispiel für ein Shellsonderzeichen ist das Dollarzeichen $, das verwendet wird, um auf den Wert einer Variablen zuzugreifen oder Befehlsersetzung durchzuführen.
  • Ein weiteres Shellsonderzeichen sind die Anführungszeichen ('", '''''), die verwendet werden, um Zeichenketten zu definieren und festzulegen, welche Teile als Text oder Variableninterpretation behandelt werden sollen.
  • Das Pipe-Symbol | wird verwendet, um die Ausgabe eines Befehls an einen anderen Befehl weiterzuleiten und so die Verarbeitung von Datenketten (Pipelines) zu ermöglichen.
  • Shellsonderzeichen sind ein wesentlicher Bestandteil des Shell-Skriptings und ermöglichen es, komplexe Aufgaben durch Kombination und Manipulation von Befehlen, Variablen und Datenströmen auszuführen.

Tabelle

Zeichen Bedeutung
; Trennt Kommandos (werden nacheinander ausgeführt)
# Kommentar
& Programm im Hintergrund starten
| STDOUT von links wird zu STDIN von rechts weitergeleitet
* Steht für beliebig viele Zeichen (auch 0)
? Steht für genau ein Zeichen
[abc] Steht für eines der Zeichen in [ ], hier a, b oder c
~ Das Homeverzeichnis
> und >> Leitet Ausgabe in eine Datei um – > überschreibt, >> hängt an
< Lesen aus Datei
2>&1 Leitet STDERR auf STDOUT um
<< Ende Lesen bis zur Markierung (Here-Document)
{ , , , } Zeichenketten oder Werte kombinieren (Brace Expansion)
!! Führt den letzten Befehl erneut aus
!$ Fügt das letzte Argument des letzten Befehls ein
"..." Entwertet Sonderzeichen außer $, ' , \ und !
'...' Entwertet alle Sonderzeichen außer ' selbst
\ Entwertet (escaped) das folgende Sonderzeichen
} Schließt eine Blockstruktur (z. B. Funktion oder Codeblock)

Aufgaben

Aufgabe 1 – Sonderzeichen im Einsatz

  • Experimentieren Sie mit den folgenden Befehlen:
    • echo $USER
    • echo "$USER"
    • echo '$USER'
    • echo \$USER
    • Was stellen Sie fest?

Aufgabe 2 – Jokerzeichen (Wildcards)

  • Erstellen Sie Testdateien (a1.txt, a2.txt, b1.txt).
  • Testen Sie die folgenden Kommandos und notieren Sie die Unterschiede:
    • ls a*.txt
    • ls ?.txt
    • ls [ab]1.txt