Aufruf eines Skripts: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
Zeile 1: Zeile 1:
==Aufbau eines Skripts==
+
== Aufbau eines Skripts ==
  
*Ein Shell-Skript ist eine einfache Textdatei, die eine Abfolge von Kommandos enthält, die von der Shell interpretiert werden.*
+
* Ein Shell-Skript ist eine einfache Textdatei, die eine Abfolge von Kommandos enthält, die von der Shell interpretiert werden.
*Die Shell liest diese Datei zeilenweise und führt jeden Befehl nacheinander aus.*
+
* Die Shell liest diese Datei zeilenweise und führt jeden Befehl nacheinander aus.
*Ein Skript kann direkt im Terminal oder über Zeit- bzw. Systemmechanismen (z. B. cron) gestartet werden.*
+
* Ein Skript kann direkt im Terminal oder über Systemmechanismen (z. B. cron) gestartet werden.
  
*Am Anfang eines Skripts steht in der Regel die sogenannte '''Shebang-Zeile'''.*
+
* Im Gegensatz zu Windows spielt die Dateiendung unter Unix/Linux keine Rolle für die Ausführung.
*Sie definiert, welcher Interpreter das Skript ausführen soll.*
+
* Entscheidend ist nicht der Dateiname, sondern der '''Anfang''' der Datei – die sogenannte '''Shebang-Zeile''' (''#!'').
  #!/bin/bash
+
* Sie legt fest, welcher Interpreter das Skript ausführt.
 +
 
 +
;Beispiel ohne Shebang
 +
* echo "echo Hallo Welt" > skript
 +
* file skript
 +
 
 +
  skript: ASCII text
 +
 
 +
* Das Kommando '''file''' zeigt, dass es sich nur um eine einfache Textdatei handelt.
 +
 
 +
;Beispiel mit Shebang
 +
* echo -e '#!/bin/bash\necho "Hallo Welt"' > skript
 +
* file skript
 +
 
 +
skript: Bourne-Again shell script text executable
 +
 
 +
* Jetzt erkennt man am Ergebnis, dass das System den Interpreter anhand der Shebang-Zeile identifiziert hat.
 +
* Damit das Skript direkt gestartet werden kann, müssen die Ausführungsrechte gesetzt werden:
  
*Die Shebang-Zeile beginnt immer mit den Zeichen ''#!'' gefolgt vom vollständigen Pfad zum Interpreter.*
+
* chmod +x skript
*Fehlt diese Zeile, wird das Skript von der aktuell laufenden Shell ausgeführt – was bei verschiedenen Shells zu abweichendem Verhalten führen kann.*
+
* ./skript
  
;Beispiel
+
  Hallo Welt
  #!/bin/bash
 
echo "Hallo $USER"
 
echo "Heute ist $(date +%A)"
 
  
*Nach der Shebang-Zeile folgen die eigentlichen Befehle, Kommentare, ggf. Variablen oder einfache Kontrollstrukturen.*
+
== Kommentare ==
*Leerzeilen werden von der Shell ignoriert, dienen aber der besseren Lesbarkeit.*
 
  
==Kommentare==
+
* Kommentare beginnen mit dem Zeichen '''#''' und werden von der Shell ignoriert.
*Kommentare beginnen mit dem Zeichen '''#''' und werden von der Shell ignoriert.*
+
* Sie dienen der Dokumentation und machen Skripte leichter verständlich.
*Sie dienen der Dokumentation und helfen, Skripte besser verständlich und wartbar zu machen.*
+
* Die Shebang-Zeile ist die einzige Ausnahme – sie beginnt zwar mit #, wird aber vom Kernel ausgewertet und nicht als Kommentar behandelt.
*Die Shebang-Zeile ist die einzige Ausnahme – sie beginnt zwar mit #, wird aber vom Kernel ausgewertet und nicht als Kommentar behandelt.*
 
  
;Beispiele
+
;Beispiel
# Dieses Skript gibt den aktuellen Benutzer und den Wochentag aus
 
 
  #!/bin/bash
 
  #!/bin/bash
  echo "Heute ist ein schoener Tag"
+
# Startmeldung
+
  echo "Start"
  
*Kommentare können auch am Ende einer Zeile stehen:*
+
* Kommentare können auch am Ende einer Zeile stehen:
  echo "Start"  # Startmeldung ausgeben
+
  echo "Start"  # Kommentar hinter einem Befehl
  
*Leere Zeilen und Kommentarzeilen haben keine Auswirkung auf die Ausführung.*
+
* Leere Zeilen und Kommentarzeilen haben keine Auswirkung auf die Ausführung.
  
==Kopfzeile und Metadaten==
+
== Kopfzeile und Metadaten ==
*In Schulungs- oder Administrationsumgebungen ist es gute Praxis, jedem Skript eine Kopfzeile mit Zweck, Autor, Datum und Version voranzustellen.*
+
 
 +
* In Schulungs- oder Administrationsumgebungen ist es üblich, jedem Skript eine kurze Kopfzeile mit Zweck, Autor, Datum und Version voranzustellen.
  
 
;Beispielkopf für Schulungsskripte
 
;Beispielkopf für Schulungsskripte
Zeile 46: Zeile 58:
 
  # Version: 1.0
 
  # Version: 1.0
  
==Empfohlene Konventionen==
+
== Empfohlene Konventionen ==
*Verwende für Skripte nach Möglichkeit die Endung '''.sh''', um sie besser erkennbar zu machen.*
+
 
*Schreibe Befehle klar strukturiert, mit Einrückungen bei logischen Blöcken.*
+
* Verwende nach Möglichkeit die Endung '''.sh''', um Skripte besser erkennbar zu machen – erforderlich ist sie jedoch nicht.
*Nutze Kommentare zur Beschreibung komplexer oder sicherheitsrelevanter Bereiche.*
+
* Strukturiere Befehle klar und übersichtlich.
*Teste Skripte vor der Ausführung mit '''bash -n''' (Syntaxprüfung) oder '''bash -x''' (Debugmodus).*
+
* Setze Kommentare gezielt zur Beschreibung des Skriptzwecks ein.
*Halte den Code portabel – vermeide shell-spezifische Erweiterungen, sofern nicht nötig.*
+
* Teste Skripte vor der Ausführung mit '''bash -n''' (Syntaxprüfung) oder '''bash -x''' (Debugmodus).
 +
* Halte den Code portabel – vermeide Shell-spezifische Erweiterungen, sofern nicht nötig.
 +
 
 +
== Aufgaben ==
 +
 
 +
* Erstellen Sie mit '''echo "echo Hallo Welt" > skript''' eine einfache Datei und prüfen Sie ihren Typ mit '''file skript'''.
 +
* Fügen Sie eine Shebang-Zeile ein und prüfen Sie erneut den Dateityp mit '''file skript'''.
 +
* Machen Sie das Skript ausführbar und starten Sie es.
 +
* Ergänzen Sie einen Kommentar, der den Zweck des Skripts beschreibt.

Aktuelle Version vom 17. Oktober 2025, 13:48 Uhr

Aufbau eines Skripts

  • Ein Shell-Skript ist eine einfache Textdatei, die eine Abfolge von Kommandos enthält, die von der Shell interpretiert werden.
  • Die Shell liest diese Datei zeilenweise und führt jeden Befehl nacheinander aus.
  • Ein Skript kann direkt im Terminal oder über Systemmechanismen (z. B. cron) gestartet werden.
  • Im Gegensatz zu Windows spielt die Dateiendung unter Unix/Linux keine Rolle für die Ausführung.
  • Entscheidend ist nicht der Dateiname, sondern der Anfang der Datei – die sogenannte Shebang-Zeile (#!).
  • Sie legt fest, welcher Interpreter das Skript ausführt.
Beispiel ohne Shebang
  • echo "echo Hallo Welt" > skript
  • file skript
skript: ASCII text
  • Das Kommando file zeigt, dass es sich nur um eine einfache Textdatei handelt.
Beispiel mit Shebang
  • echo -e '#!/bin/bash\necho "Hallo Welt"' > skript
  • file skript
skript: Bourne-Again shell script text executable
  • Jetzt erkennt man am Ergebnis, dass das System den Interpreter anhand der Shebang-Zeile identifiziert hat.
  • Damit das Skript direkt gestartet werden kann, müssen die Ausführungsrechte gesetzt werden:
  • chmod +x skript
  • ./skript
Hallo Welt

Kommentare

  • Kommentare beginnen mit dem Zeichen # und werden von der Shell ignoriert.
  • Sie dienen der Dokumentation und machen Skripte leichter verständlich.
  • Die Shebang-Zeile ist die einzige Ausnahme – sie beginnt zwar mit #, wird aber vom Kernel ausgewertet und nicht als Kommentar behandelt.
Beispiel
#!/bin/bash
# Startmeldung
echo "Start"
  • Kommentare können auch am Ende einer Zeile stehen:
echo "Start"  # Kommentar hinter einem Befehl
  • Leere Zeilen und Kommentarzeilen haben keine Auswirkung auf die Ausführung.

Kopfzeile und Metadaten

  • In Schulungs- oder Administrationsumgebungen ist es üblich, jedem Skript eine kurze Kopfzeile mit Zweck, Autor, Datum und Version voranzustellen.
Beispielkopf für Schulungsskripte
#!/bin/bash
# Zweck:   Beispiel für Skriptaufbau
# Autor:   Thomas
# Datum:   17.10.2025
# Version: 1.0

Empfohlene Konventionen

  • Verwende nach Möglichkeit die Endung .sh, um Skripte besser erkennbar zu machen – erforderlich ist sie jedoch nicht.
  • Strukturiere Befehle klar und übersichtlich.
  • Setze Kommentare gezielt zur Beschreibung des Skriptzwecks ein.
  • Teste Skripte vor der Ausführung mit bash -n (Syntaxprüfung) oder bash -x (Debugmodus).
  • Halte den Code portabel – vermeide Shell-spezifische Erweiterungen, sofern nicht nötig.

Aufgaben

  • Erstellen Sie mit echo "echo Hallo Welt" > skript eine einfache Datei und prüfen Sie ihren Typ mit file skript.
  • Fügen Sie eine Shebang-Zeile ein und prüfen Sie erneut den Dateityp mit file skript.
  • Machen Sie das Skript ausführbar und starten Sie es.
  • Ergänzen Sie einen Kommentar, der den Zweck des Skripts beschreibt.