Bash Programmierung: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 32: Zeile 32:
 
*[[Bash printf]]
 
*[[Bash printf]]
  
=Das neue Test Kommando=
+
*[[Bash Das neue Test Kommando]]
*"[[" ist Bashs Verbesserung des "[" Befehls.
 
*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=
 
=Links=

Version vom 24. Mai 2023, 18:40 Uhr