linux
Kombination | Bedeutung |
---|---|
Strg+R | Revearse-Search in der History * Nächsten Treffer bekommt man per Strg+R usw. * Esc → Übernehme den Befehl in die Bash (ohne ausführen) * Enter → Übernehme Befehl und führe ihn sofort aus | |
Strg+u | Lösche Eingabe von aktueller Position bis Beginn des Prompts |
Strg+k | Lösche Eingabe von aktueller Position bis Ende des Prompts |
Strg+l | Lösche alle Eingaben auf dem Terminal → entspricht clear |
Syntax:
for //variable// in //Array// do Code; done
Beispiel:
for myvalue in $myarray do echo "${myvalue}" done
Syntax:
for i in {x..y}; do code; done
Beispiel: for i in {1..5}; do
Echo "Hallo"
done </code>
Obiges Beispiel gibt 5 mal Hallo aus.
Syntax:
for i in $(seq $a $b); do code done
Beispiel:
a=5 for i in $(seq 1 $a); do echo "Hallo" done
Obiges Beispiel gibt 5 mal Hallo aus
Syntax: Rückgabevariable=$(Befehl)
Beispiel:
a=${namen[Anna]
Würde den Wert im Array name zurückliefern (in die Variable a), der im Feld Anna steht (zum Beipsiel den Nachnahmen von Anna).
Deklaration: declare -A Hasmap-Name
* += Fügt ein weiteres Argument-Wert-Paar dem Array hinzu
Zugriff: ${Arrayname[Index1,Index2]}
Beispiel: ${Namen[0,1]}
Achtung: Gemischte multidimensionale Arrays (in denen ein Index ein String und der andere eine Zahl ist) scheinen zwar keine Fehler-Ausgaben zu produzieren, aber auch nicht zu funktionieren (beim Auslesen wird immer das ausgegeben was im ersten Feldhinterlegt ist).
Operator | Erklärung |
---|---|
-eq | Vergleich zweier arithemtischer (numerischer) Werte auf Gleichheit Syntax: $a -eq $b |
-ne | Vergleich zweier arithemtischer (numerischer) Werte auf Ungleichheit Syntax: $a -ne $b |
-z | Prüfung eines Strings ob dessen Länge 0 ist (String ist leer). Syntax: -z „${a} Achtung:Die Variable muss in “„ stehen, weil sonst die 0-Länge nicht zuverlässig ermittelt wird (wahrscheinlich wird nur geprüft ob zwischen den “„ etwas steht oder nicht) |
-n | Prüfen eines Strings auf Länge größer 0 (String hat Inhalt) Syntax: -n „$a“ Achtung:Die Variable muss in “„ stehen, weil sonst die Länge nicht unbedingt korrekt ermittelt wird. |
'
und
"
verhindern/erlauben das expandieren (Steuerbefehle und Variablennamen werden entsprechend ersetzt/interpretiert) von Variablennamen und Steuerbefehlen
'
→ expandiert die Zeichenkette nicht, sondern nimmt sie so wie sie da steht (literal, wörtlich)
a=5 echo "$a" 5
Die Zeichenkette hinter „echo“ wird expandiert. „$a“ wird durch den Wert der Variable (5) ersetzt.
Dementsprechend wird „5“ ausgegeben
a=5 echo "$a" $a
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.
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!
mycommand -c "echo $a"
mycommand -c 'echo $a'
Snytax: bash -n Script
Syntax: bash -x Script
Syntax: bash –debug Scriptname
Dem Debugger muss man Befehle geben damit er was macht
Befehl | Bedeutung |
---|---|
s | Step Führe den aktuellen (angezeigten) Befehl aus |
n | Next Führe den aktuellen Befehl aus (wie bei s), wenn es aber eine Funktion ist mache keine Einzelausführung jedes Befehls in der Funktion, sondern führe die Funktion ohne halt aus und stoppe beim nächsten Befehl nach der Funktion |
l | list Gibt den Programmcode nach der aktuellen Zeile aus → ohne ihn auszuführen |
b | Breakpoint Syntax: b Zeilennummer Setzt einen Breakpoint an der Zeile mit Nummer Zeilennummer (kann man sich per l ausgeben lassen). Das Script wird (wenn man c eingibt) bis zu dem gesetzten Break-Point |
c | Continue Führe das Script ab der aktuellen Position aus, ohne Bestätigung für jeden Schritt zu verlangen. Ausführung erfolgt bis zu einem Break-Point oder das Script zu Ende ist |
W | watchpoint Überwache eine bestimmte Variable und Stoppe an Stellen wo der Wert geändert wird Syntax: w Variablenname Achtung:Das geht erst nach dem die Variable das erste mal benutzt (deklariert/definiert) wurde. Bedeutet man muss erst mal bis zu einem Punkt gehen wo diese Variable genutzt wird → erst dort kann dann w Variablenname genutzt werden. Von dort aus kann man dann per c (continue) automatisch weiterlaufen lassen |
Typ | Name | Beschreibung | URL |
---|---|---|---|
Wiki | Bash-Hackers | Wiki über die Bash-Programmierung | http://wiki.bash-hackers.org |