Bash Der if-Block: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 1: Zeile 1:
 
==Was ist das?==
 
==Was ist das?==
*Das "if"-Statement in Bash ermöglicht die Ausführung von Code basierend auf einer Bedingung. Es überprüft den Wahrheitswert einer Bedingung und führt den Codeblock unterhalb von "if" aus, wenn die Bedingung erfüllt ist.
+
* Das "if"-Statement in Bash ermöglicht die Ausführung von Code basierend auf einer Bedingung.
*Die Syntax des "if"-Statements besteht aus dem Schlüsselwort "if", gefolgt von einer Bedingung in runden Klammern und einem abschließenden Semikolon. Der Codeblock wird durch "then" eingeleitet und durch "fi" (steht für "end if") beendet.
+
* Es überprüft den Wahrheitswert einer Bedingung und führt den Codeblock unterhalb von "if" aus, wenn die Bedingung erfüllt ist.
*Zusätzlich kann das "if"-Statement durch "else" und "elif" (eine verkürzte Form von "else if") erweitert werden, um alternative Zweige abhängig von anderen Bedingungen zu ermöglichen.
+
* Die Syntax des "if"-Statements besteht aus dem Schlüsselwort "if", gefolgt von einer Bedingung in runden Klammern und einem abschließenden Semikolon
*Das "if"-Statement ist ein leistungsstarkes Konstrukt in Bash, das es ermöglicht, Code basierend auf verschiedenen Bedingungen und Szenarien zu verzweigen und so die Flexibilität und Kontrolle in Shell-Skripten zu verbessern.
+
* Der Codeblock wird durch "then" eingeleitet und durch "fi" (steht für "end if") beendet.
==Konstrukt==
+
* Zusätzlich kann das "if"-Statement durch "else" und "elif" (eine verkürzte Form von "else if") erweitert werden, um alternative Zweige abhängig von anderen Bedingungen zu ermöglichen.
 +
* Das "if"-Statement ist ein leistungsstarkes Konstrukt in Bash, das es ermöglicht, Code basierend auf verschiedenen Bedingungen und Szenarien zu verzweigen und so die Flexibilität und Kontrolle in Shell-Skripten zu verbessern.
  
 +
= Konstruktion =
 +
 +
<syntaxhighlight lang=bash>
 +
'''if''' programm
 +
'''then'''
 +
  anweisung1
 +
'''else'''
 +
  anweisung2
 +
'''fi'''
 +
</syntaxhighlight>
  
'''if''' programm
 
'''then'''
 
  anweisung1
 
'''else'''
 
  anweisung2
 
'''fi'''
 
 
Der if-Block verzweigt in Abhängigkeit des Returncodes des Programmes das ausgeführt wird.  Ist der  
 
Der if-Block verzweigt in Abhängigkeit des Returncodes des Programmes das ausgeführt wird.  Ist der  
 
Returncode gleich null, wird Anweisung1 ausgeführt; ist der Returncode ungleich null, wird Anweisung2
 
Returncode gleich null, wird Anweisung1 ausgeführt; ist der Returncode ungleich null, wird Anweisung2

Version vom 31. Mai 2023, 08:03 Uhr

Was ist das?

  • Das "if"-Statement in Bash ermöglicht die Ausführung von Code basierend auf einer Bedingung.
  • Es überprüft den Wahrheitswert einer Bedingung und führt den Codeblock unterhalb von "if" aus, wenn die Bedingung erfüllt ist.
  • Die Syntax des "if"-Statements besteht aus dem Schlüsselwort "if", gefolgt von einer Bedingung in runden Klammern und einem abschließenden Semikolon
  • Der Codeblock wird durch "then" eingeleitet und durch "fi" (steht für "end if") beendet.
  • Zusätzlich kann das "if"-Statement durch "else" und "elif" (eine verkürzte Form von "else if") erweitert werden, um alternative Zweige abhängig von anderen Bedingungen zu ermöglichen.
  • Das "if"-Statement ist ein leistungsstarkes Konstrukt in Bash, das es ermöglicht, Code basierend auf verschiedenen Bedingungen und Szenarien zu verzweigen und so die Flexibilität und Kontrolle in Shell-Skripten zu verbessern.

Konstruktion

'''if''' programm
'''then''' 
  anweisung1
'''else'''
  anweisung2
'''fi'''

Der if-Block verzweigt in Abhängigkeit des Returncodes des Programmes das ausgeführt wird. Ist der Returncode gleich null, wird Anweisung1 ausgeführt; ist der Returncode ungleich null, wird Anweisung2 ausgeführt.

If.jpg

Der else-Zweig kann ausgelassen oder durch einen elif-Zweig ersetzt werden. Der elif-Zweig ist eine Besonderheit bei Verschachtelungen.

  • cat rechnertest
#!/bin/bash
if ping -c 1 -w 1 $1 > /dev/null 2>&1
then
 echo "rechner lebt"
else
 echo "rechner ist tot"
fi
  • ./rechnertest 172.20.103.1
rechner lebt
  • ./rechnertest 172.20.103.99
rechner ist tot

Variante ohne else

  • cat rechnertest.spar
#!/bin/bash
if ping -c 1 -w 1 $1 > /dev/null 2>&1
then
echo "rechner lebt"
fi
  • ./rechnertest.spar 172.20.103.1
rechner lebt
  • ./rechnertest.spar 172.20.103.99

Sonderform mit elif

  • cat el
 #!/bin/bash
 echo -n "wie heissen Sie :"
 read NAME
 if test $NAME = "thomas"
  then
    echo "hallo meister"
 elif test $NAME = "martin"
   then
     echo "hallo vizemeister"
 else
     echo "hallo wurm"
 fi
  • ./el
wie heissen Sie :thomas
hallo meister
  • ./el
wie heissen Sie :martin
hallo vizemeister
  • ./el
wie heissen Sie :suxer
hallo wurm