Bash Programmierung: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(49 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
=Bash Basics=
+
=Allgemeines=
*[[Einfache Shellsonderzeichen]]
+
*[[Thomas Will]]
*[[Bash Eingabe/Ausgabe]]
+
*[[Zeiten]]
*[[Jokerzeichen]]
+
=Themen=
*[[Prinzip der Bash]]
+
*[[Bash Programmierung Inhalt]]
*[[Interpretator]]
+
<!-- == Tag 1 ==  -->
*[[Ablauf eines Shell-Skriptes]]
+
* [[Die Geschichte der Shells]]
*[[Möglichkeiten ein Shellskript aufzurufen]]
+
* [[Ziele des IT Trainings Bash Programmierung]]
*[[Bash Variablen]]
+
* [[Arten von Shells]]
*[[Bash Dateien]]
+
* [[Prinzip der Bash]]
*[[Here Dokument]]
+
* [[Unterschiede zwischen bash und powershell]]
*[[read-Kommando]]
+
* [[Skript Interpreten in Linux]]
*[[Einfache Verzweigungen]]
+
* [[Möglichkeiten ein Shellskript aufzurufen]]
*[[Endestatus]]
+
* [[Bash Eingabe/Ausgabe]]
*[[test-Kommando]]
+
* [[Bash Pipe]]
*[[Optionen der Bash]]
+
* [[Einfache Shellsonderzeichen]]
*[[Bash Der if-Block]]
+
* [[Jokerzeichen/Wildcard]]
*[[Bash Der case-Block]]
+
* [[Ein paar Kommandos]]
*[[Rechnen mit der Bash]]
+
* [[Kommandolokalisierung]]
*[[Bash Die while-Schleife]]
+
* [[Bash ssh in Programmen nutzen]]
*[[Bash Die until-Schleife]]
+
<!-- == Tag 2 == -->
*[[Bash Die for-Schleife]]
+
* [[Ablauf eines Shell-Skriptes]]
*[[Bash Steuerung der Ablaufanweisungen]]
+
* [[Bash Variablen]]
*[[bash funktion]]
+
* [[Bash Dateien]]
*[[Bash Signalbehandlung]]
+
* [[Here Dokument]]
*[[aliase]]
+
* [[Here String]]
*[[Bash Filedeskriptoren]]
+
* [[read-Kommando]]
*[[Bash Farben]]
+
* [[Endestatus]]
 +
* [[Bash Einfache Verzweigungen]]
 +
* [[test-Kommando]]
 +
* [[Bash Das neue Test Kommando]]
 +
* [[Rechnen mit der Bash]]
 +
<!-- == Tag 3 == -->
 +
<!-- == Tag 4 == -->
 +
* [[Bash Der if-Block]]
 +
* [[Bash Der case-Block]]
 +
* [[Bash Die while-Schleife]]
 +
* [[Bash Die until-Schleife]]
 +
* [[Bash Die for-Schleife]]
 +
* [[Bash Steuerung der Ablaufanweisungen]]
 +
* [[Bash funktion]]
 +
* [[cron]]
 +
* [[Bash Signalverarbeitung]]
 +
<!-- == Tag 5 == -->
 +
* [[Bash printf]]
 +
* [[Aliase]]
 +
* [[Prozesse]]
 +
* [[Bash Filedeskriptoren]]
 +
* [[Bash Farben]]
 +
* [[Bash getopts]]
 +
* [[Bash eval]]
 +
* [[Optionen der Bash]]
 +
* [[Bit Operationen mit der Bash]]
 +
* [[Bash Skripte]]
 +
* [[Mail Kommando]]
 +
* [[Bash Passwort generieren]]
 +
* [[Bash Alter eine Datei]]
 +
* [[Ssh VPN]]
 +
* [[Aufgaben gesamt]]
  
*[[Bash getopts]]
+
= Links=
 
+
* http://openbook.rheinwerk-verlag.de/shell_programmierung/
*[[Bash printf]]
+
* http://mywiki.wooledge.org/BashFAQ/031
 
+
* http://tldp.org/LDP/abs/html/index.html
=Das neue Test Kommando=
+
* http://openbook.rheinwerk-verlag.de/shell_programmierung/shell_006_003.htm
*"[[" ist Bashs Verbesserung des "[" Befehls.
+
* https://kuepper.userweb.mwn.de/informatik/printf.pdf
*Es ist die bessere  Wahl, wenn Sie Skripte schreiben, die auf Bash abzielen. Meine Favoriten sind:
 
*Es ist eine syntaktische Funktion der Shell, daher weist sie ein besonderes Verhalten auf, das "[" nicht hat.
 
*Variablen müssen nicht mehr quotiert werden, da leere Zeichenfolgen und Zeichenfolgen mit Leerzeichen intuitiver behandelt werden.
 
*Zum Beispiel müssen Sie mit "[" schreiben.
 
<pre>
 
if [ -f "$ FILE"]
 
</pre>
 
*um leere Zeichenfolgen oder Dateinamen mit Leerzeichen richtig zu behandeln. Mit "[[" sind die Anführungszeichen unnötig:
 
<pre>
 
if [[ -f $ FILE ]]
 
</pre>
 
*Da es sich um eine syntaktische Funktion handelt, können Sie && und || verwenden Operatoren für Boolesche Tests und <und> für Zeichenfolgenvergleiche.
 
*[ kann dies nicht tun, da es sich um einen regulären Befehl handelt und &&, ||, <und> nicht als Befehlszeilenargumente an reguläre Befehle übergeben werden.
 
 
 
*Es hat einen wunderbaren Operator = ~, um Übereinstimmungen mit regulären Ausdrücken zu erstellen. Mit [ könntest du schreiben
 
<pre>
 
if ["$ ANSWER" = y -o "$ ANSWER" = yes]
 
</pre>
 
*Mit [[ können Sie dies als schreiben
 
<pre>
 
if [[ $ ANSWER = ~ ^ y (es)? ]]
 
</pre>
 
*Sie können sogar auf die erfassten Gruppen zugreifen, die in BASH_REMATCH gespeichert sind.
 
*Zum Beispiel wäre $ {BASH_REMATCH [1]} "es", wenn Sie oben ein vollständiges "ja" eingeben.
 
*Sie erhalten die Mustererkennung aka Globbing kostenlos.
 
*Vielleicht sind Sie weniger streng im Schreiben von Ja. Vielleicht bist du okay, wenn der Benutzer y-irgendetwas eingibt. Haben Sie sich versichert:
 
*wenn $ ANSWER = y *
 
 
 
=Links=
 
*http://openbook.rheinwerk-verlag.de/shell_programmierung/
 
*http://mywiki.wooledge.org/BashFAQ/031
 
*http://tldp.org/LDP/abs/html/index.html
 
*http://openbook.rheinwerk-verlag.de/shell_programmierung/shell_006_003.htm
 
*https://kuepper.userweb.mwn.de/informatik/printf.pdf
 

Aktuelle Version vom 9. Juni 2023, 06:25 Uhr