Benutzer-Werkzeuge

Webseiten-Werkzeuge


bash

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
bash [2015/11/11 10:19]
root
bash [2022/07/19 13:38] (aktuell)
root [Übergabe an andere Programme]
Zeile 38: Zeile 38:
 done done
 </code> </code>
 +
 +
 +
 +===== for-Zählschleife =====
 +
 +  * Geht nur ohne Variablen (mit festen Werten) direkt in Bash
 +
 +Syntax:
 +<code>
 +for i in {x..y}; do
 +       code;
 +done
 +</code>
 +
 +Beispiel:
 +for i in {1..5}; do
 +       Echo "Hallo"
 +done
 +</code>
 +
 +Obiges Beispiel gibt 5 mal Hallo aus.
 +
 +  * Mit Variablen muss man das externe "seq" benutzen
 +
 +Syntax:
 +<code>
 +for i in $(seq $a $b); do
 +    code
 +done
 +</code>
 +
 +Beispiel:
 +<code>
 +a=5
 +for i in $(seq 1 $a); do
 +    echo "Hallo"
 +done
 +</code>
 +
 +Obiges Beispiel gibt 5 mal Hallo aus
  
 ===== Programme aufrufen/ Andere Scripte aurufen ===== ===== Programme aufrufen/ Andere Scripte aurufen =====
Zeile 95: Zeile 135:
  
  
 +====== Anführungszeichen und Single-Quotes ======
 +
 +  * Zeichenketten in <code>'</code> und <code>"</code> verhindern/erlauben das expandieren (Steuerbefehle und Variablennamen werden entsprechend ersetzt/interpretiert) von Variablennamen und Steuerbefehlen
 +      * <pre>"</pre> -> expandiert die Zeichenkette (interpretiert sie)
 +      * <code>'</code> -> expandiert die Zeichenkette nicht, sondern nimmt sie so wie sie da steht (literal, wörtlich)
 +
 +<sxh bash>
 +a=5
 +echo "$a"
 +5
 +</sxh>
 +
 +Die Zeichenkette hinter "echo" wird expandiert. "$a" wird durch den Wert der Variable (5) ersetzt. \\
 +Dementsprechend wird "5" ausgegeben
 +
 +<sxh bash>
 +a=5
 +echo "$a"
 +$a
 +</sxh>
 +
 +Die Zeichenkette hinter "echo" wird nicht expandiert/interpretiert. "$a" bleibt der String "$a und wird nicht durch den Inhalt der Variablen ersetzt \\
 +Dementsprechend wird "$a" ausgegeben.
 +
 +===== Übergabe an andere Programme =====
 +
 +Es gibt Programme die Shellkommandos übernehmen um sie dann beim eintreten bestimmter Bedingungen auszuführen. \\
 +Man muss aufpassen ob man die Shell-Befehlskette die man übergibt in %%"%% oder %%'%% setzt!
 +
 +<sxh bash>
 +mycommand -c "echo $a"
 +</sxh>
 +
 +  * da der Wert für Parameter "-c" in %%"%% angegeben wurde wird er vor! der Übergabe an mycommand ausgewertet und erhält den Wert von "a" auf der aktuellen Shell.
 +      * ist "a" auf der aktuellen Shell 5, bekommt mycommand "echo 5" übergeben und nicht! "echo $a"
 +
 +
 +<sxh bash>
 +mycommand -c 'echo $a'
 +</sxh>
 +
 +  * da der Wert für Parameter "-c" in %%'%% angegeben wurde wird er nicht vor der Übergabe an mycommand ausgewertet
 +      * d.h. mycoomand bekommt "echo $a" übergeben
 ====== Debugging/Prüfen ====== ====== Debugging/Prüfen ======
  
bash.1447233582.txt.gz · Zuletzt geändert: 2015/11/11 10:19 von root