|
|
Zeile 14: |
Zeile 14: |
| |} | | |} |
|
| |
|
| Für die Benennung des Skriptes, ist es sehr wichtig '''keine''' Sonderzeichen einzufügen, sowie vorhandene Befehle zu benutzen.
| | Lange Kommandos, die sich über mehrere Zeilen verteilen, sollten mit einem Backslash ''\'' aufgeteilt werden. |
| Allgemein werden Skripte meist in Textdateien geschrieben.
| | dd of=/dev/zero \ |
| | if=/.tmp \ |
| | bs=1M count=2000 stauts=progress |
|
| |
|
| ==Wichtige Inhalte in einem Skript== | | ==Ausführung eines Skripts== |
|
| |
|
| *Standard-Syntax verwenden (sh) | | ===Ausführungsberechtigung=== |
| *Kommandosubstitutionen verwenden | | *Ein Shell-Skript kann nur dann ausgeführt werden, wenn die Datei auf "ausführbar" gesetzt wird. |
| *verkettete Kommandos ausführen | | *Mit ''ls -l'' kann man die Berechtigungen sehen |
| **es werden mehrere Befehle in einer einzigen Befehlszeile ausgeführt
| | *Mit ''chmod'' kann man das Attribut für die Ausführbarkeit gesetzt werden. |
| **werden mit einem Semikolon (;) getrennt
| | # chmod a+x <Skriptdatei> |
| **Beispiel: # df -h;free -m
| | *<code>chmod 700 <Skriptdatei></code> setzt das Ausführungsbit nur für den Benutzer. |
| **-> Zunächst zeigt es die Festplattenbelegung, anschliessend die Speicherverwendung | |
|
| |
|
| ==Position eines Skriptes==
| |
|
| |
| Falls man ein Skript öfter benötigt, wäre es sinnvoll ein Verzeichnis auszuwählen, dass auf die PATH-Variable zeigt.
| |
| */usr/bin ist gut geeignet für systemweite und für jeden zugänglich
| |
| */usr/sbin ist gut geeignet für durchgeführte administrative Eingriffe oder auch nicht für normale Benutzer anwendbar sein sollen
| |
|
| |
| ==Ausführung eines Skriptes==
| |
| Es gibt drei Methoden ein Skript auszuführen:
| |
| # Addiert zwei Werte
| |
| let summe=$1+$2
| |
| echo "Die Summe aus $1 und $2 ist $summe."
| |
| Zum einen mit "add":
| |
| /bin/bash /storage/scriptdemo/add 5 6
| |
| Die Summe aus 5 und 6 ist 11.
| |
| Zum anderen mit "source":
| |
| source /storage/scriptdemo/add 5 6
| |
| Die Summe aus 5 und 6 ist 11.
| |
| Zum anderen musst du zunächst die Datei ausführbar machen:
| |
| /storage/scriptdemo # ls -l
| |
| ...
| |
| -rw-r--r-- 1 root root 92 Aug 24 16:52 add
| |
| ...
| |
| -rw-r-r-- das sind Standardberechtigungen für eine neue Datei. Bedeutet mit "chmod" wird das Attribut für die Ausführbarkeit hinzugefügt:
| |
| /storage/scriptdemo # chmod a+x add
| |
| /storage/scriptdemo # ls -l
| |
| ...
| |
| -rwxr-xr-x 1 root root 92 Aug 24 16:52 add
| |
| ...
| |
| Nun wird die Shebangzeile eingefügt:
| |
| #!/bin/bash
| |
| # Addiert zwei Werte
| |
| let summe=$1+$2
| |
| echo "Die Summe aus $1 und $2 ist $summe."
| |
| Das Zeichen "#!" ist in dieser Situation '''kein''' Kommentarzeichen, sondern zeigt die Ausführbarkeit der Datei an.
| |
| ==Wichtige Dateien, Verzeichnisse und Anwendungen==
| |
|
| |
| {|class="wikitable"
| |
| !Zeichen !!
| |
| |-
| |
| | <nowiki>for</nowiki> || -
| |
| |-
| |
| | <nowiki>&&</nowiki> || bei diesem Zeichen wird der zweite Befehl nur ausgeführt, wenn der erste erfolgreich war
| |
| |-
| |
| | <nowiki>||</nowiki> || bei diesem Zeichen wird der zweite Befehl nur ausgeführt, wenn der erste fehlgeschlagen ist
| |
| |-
| |
| | <nowiki>while</nowiki> || -
| |
| |-
| |
| | <nowiki>test</nowiki> || -
| |
| |-
| |
| | <nowiki>read</nowiki> || -
| |
| |-
| |
| | <nowiki>if</nowiki> || -
| |
| |-
| |
| | <nowiki>seq</nowiki> || -
| |
| |-
| |
| | <nowiki>exec</nowiki> || Erklärung im unteren Teil des Artikels. (Sonstiges)
| |
| |}
| |
|
| |
| ==Übergabevariablen und Rückgabewerte==
| |
|
| |
| ==Grundrechenarten==
| |
|
| |
| Es gibt vier verschiedene Grundrechenarten, mit denen man im Skripten arbeiten und rechnen kann.
| |
| clear; echo -e "\nGeben Sie jetzt den ersten Wert ein "
| |
| read a
| |
| clear; echo -e "\nGeben Sie jetzt den zweiten Wert ein "
| |
| read
| |
| Damit wurde ein Wert für die Varibale "a" und "b" gesetzt.
| |
| *[a]ddieren
| |
| if [$operator=a]; then
| |
| let c=a+b
| |
| clear; echo $a + $b = $c
| |
| *[s]ubtrahieren
| |
| elif [ $operator=s]; then
| |
| let c=a-b
| |
| clear; echo $a – $b = $c
| |
| *[m]ultiplizieren
| |
| elif [ $operator=m]; then
| |
| let c=a*b
| |
| clear; echo $a * $b = $c
| |
| *[d]ividieren
| |
| elif [ $operator=d]; then
| |
| let c=a/b
| |
| clear; echo $a / $b = $c
| |
|
| |
| ==Sonstiges==
| |
|
| |
| Mit Exec kann man ein externes Programm oder ein anderes Skript aufrufen, dabei wird der laufenden Prozess / das laufende Skript automatisch beendet und ersetzt.
| |
|
| |
|
| [[Category:Linux]] | | [[Category:Linux]] |
Mithilfe von Skripten können alltägliche Aufgaben völlig automatisch ablaufen lassen. In Skripten müssen neben Shell-Kommandos auch Befehle fürs Programmieren angewendet werden, vornehmlich Schleifen und Fallunterscheidungen.
Kommandos verketten
Es gibt drei Zeichen, um Kommandos nacheinander auszuführen.
Zeichen |
Bedeutung |
Beispiel
|
; |
Kommandos werden nacheinander durchgeführt |
echo "Dies ist eine Liste";ls -l
|
&& |
Kommando 2 wird dann ausgeführt, wenn das erste Kommando erfolgreich war. |
ls && echo "Vorgang erfolgreich"
|
|| |
Kommando 2 wird dann ausgeführt, wenn das erste Kommando erfolglos war. |
ls /etz || echo "Fehlernummer $?"
|
Lange Kommandos, die sich über mehrere Zeilen verteilen, sollten mit einem Backslash \ aufgeteilt werden.
dd of=/dev/zero \
if=/.tmp \
bs=1M count=2000 stauts=progress
Ausführung eines Skripts
Ausführungsberechtigung
- Ein Shell-Skript kann nur dann ausgeführt werden, wenn die Datei auf "ausführbar" gesetzt wird.
- Mit ls -l kann man die Berechtigungen sehen
- Mit chmod kann man das Attribut für die Ausführbarkeit gesetzt werden.
# chmod a+x <Skriptdatei>
chmod 700 <Skriptdatei>
setzt das Ausführungsbit nur für den Benutzer.