Show Menu
Cheatography

Bash Scripting for Beginners Cheat Sheet (DRAFT) by

A summary of the basic structure of Bash scripts

This is a draft cheat sheet. It is a work in progress and is not finished yet.

Skript Datei

Datei anlegen
touch myscri­pt.sh
Datei ausführbar machen
chmod +x myscri­pt.sh
Skript ausführen
sh myscri­pt.sh

Erste Zeile jedes Skripts

#!/bin­/bash
Diese Zeile weist das System an, das Skript in der BASH-Shell auszuf­ühren, unabhängig davon, welche Shell der Benutzer standa­rdmäßig verwendet. Das Format ist #!, gefolgt vom Pfad zum Interp­reter, normal­erweise /bin/bash.

Input/­Output

Mit Input sind die Daten oder Inform­ationen gemeint, die ein Programm empfängt oder liest. Die Eingaben kann aus versch­iedenen Quellen stammen:
Umgebungsvariablen, Komman­doz­eil­en-­Arg­umente, Dateien
Im Skript wird das read Keyword verwendet, um User-Input einzulesen
Unter Output versteht man die Inform­ationen oder Daten, die ein Programm generiert oder schreibt. Die Ausgabe kann an versch­iedene Ziele geleitet werden:
Umgebungsvariablen, Komman­doz­eil­en-­Arg­umente eines anderen Programms, Dateien
Im Skript wird das echo Keyword verwendet, um Output in der Konsole auszugeben

Quoting

'.....'
Variablen werden nicht durch Werte ersetzt​
"....."
Variablen werden durch Werte ersetzt​
`.....`
Inhalt wird als Kommando ausgef­ührt​
.....<<
Bequem längere Texte ausgeben

Basic Variablen

VAR1=abc

Werden definiert durch Name + Gleich­zeichen + Wert (alles ohne Leerze­ichen)

Für Strings können Anführ­ung­sze­ichen (einfache oder doppelte benutzt werden, müssen aber nicht)

Zugriff auf den Inhalt der Variablen mit $VAR1 oder ${VAR1}
 

Reserv­ierte Variablen

$$
Prozes­s-ID 
$?
Return­-Code
$1 - $n
Übergebene Parameter
$*
Alle Parameter – als ein Wort
$@
Alle Parameter – als List von Wörtern
$0
Skriptname (Aufruf)
$#
Anzahl der Parameter

For Schleife

Einfach:
for variable in list; do

    command1

    command2

done


Versch­ach­telt:
for i in {1..3}; do

    for j in {a..c}; do

        echo "­$i$­j"

    done

done

While Schleife

while [ condition ]; do
    command1
    command2
done
While-­Sch­leifen führen einen Befehl­sblock aus, solange eine angegebene Bedingung erfüllt ist.

Until

until [ condition ]; do
    command1
    command2
done
Until-­Sch­leifen ähneln While-­Sch­leifen, werden jedoch ausgef­ührt, bis eine Bedingung erfüllt ist.

Continue / Break

Auf der anderen Seite wird die Continue-Anweisung verwendet, wenn wir eine bestimmte Iteration übersp­ringen müssen. Immer wenn wir eine contin­ue-­Anw­eisung schreiben, wird der gesamte Code nach dieser Anweisung übersp­rungen und die Schleife wird zur nächsten Iteration fortge­setzt.
Eine Break-Anweisung wird verwendet, wenn wir die laufende Schleife beenden möchten, wenn eine bestimmte Bedingung eintritt. Immer wenn eine Break-­Anw­eisung auftritt, wird die Schleife unterb­rochen und die Ausführung gestoppt.
 

If Abfrage

if [ condition ]; then
    commands
elif [ condition ]; then
    commands
else
    commands
fi
Es gibt mehrere versch­ieden Schrei­bweisen und auch Kurzformen

Switch Case

case expression in
    pattern1)
        commands
        ;;
    pattern2)
        commands
        ;;
    *)
        default_commands 
        ;;
esac
If-Anw­eis­ungen werden für komplexe Beding­ungen und case-A­nwe­isungen für einfac­here, muster­bas­ierte Überei­nst­imm­ungen

Funktionen

Funktion ohne Rückgabe:
functi­on_­name() {

    commands

}


Funktion mit Rückgabe::
functi­on_­name() {

    commands

    return result

}

.
Rückgabe: Für Strings muss echo ​verwendet werden​ und return erwartet einen ​numer­ischen Return code​

Komman­dot­renner

kommando1 ; kommando2
Kommandos werden hinter­ein­ander ausgeführt
kommando1 & kommando2
Erstes Kommando in Hinter­grund
kommando1 && kommando2
Logisch und
kommando1 || kommando2
Logisch oder

Komman­dos­ubs­tit­ution

1)
CMD_OU­T=`ls -la`

2)
CMD_OU­T=$(ls -la)


Bei der Komman­dos­ubs­tit­ution wird der Inhalt der Klammern / Backticks als Kommando ausgeführt und das Ergebnis nach „links“ überge­ben.​
In diesen Beispielen wird die Rückgabe der Kommandos in
$CMD_OUT
gespei­chert​

Arithm­etische Operatoren

-gt
größer als
>
-ge
größer gleich
>=
-lt
kleiner als
<
-le
kleiner gleich
<=
-eg
gleich
==
-ne
nicht gleich
!=

Testen von Dateien

-e
Datei existiert
-f
ist reguläre Datei
-s
nicht größer Null
-d
ist ein Verzei­chnis
-L
ist ein symbol­ischer Link