Benutzer-Werkzeuge

Webseiten-Werkzeuge


profil:klasse9:einfacheshellscripte

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
profil:klasse9:einfacheshellscripte [2022/03/24 10:20] – [Shellscripte Erstellen und Ausführen] lutzprofil:klasse9:einfacheshellscripte [2022/03/24 15:10] (aktuell) – [Shebang] lutz
Zeile 56: Zeile 56:
  
 =====Shellscripte Erstellen und Ausführen==== =====Shellscripte Erstellen und Ausführen====
 +
 +====Unser erstess Script====
  
 Unser script soll in der Datei ''%%beispielscript.sh%%'' stehen. Bei Shellscripten ist die Endung ''%%.sh%%'' üblich. Wir öffnen also die Datei mit **nano**: Unser script soll in der Datei ''%%beispielscript.sh%%'' stehen. Bei Shellscripten ist die Endung ''%%.sh%%'' üblich. Wir öffnen also die Datei mit **nano**:
Zeile 67: Zeile 69:
 <code bash> <code bash>
 mkdir beispielverzeichnis mkdir beispielverzeichnis
-ls -l beispielverzeichnis+ls -l
 rmdir beispielverzeichnis rmdir beispielverzeichnis
 </code> </code>
 +
 +{{ :profil:klasse9:nano_mit_script.png?600 |}}
 +
 +Mit **STRG-O** und **ENTER** kann man die Datei jetzt speichern.
 +
 +Jetzt müssen wir das Script ausführbar machen und danach können wir es ausführen. Es ist günstig eine weitere Shellsitzung zu öffnen, dann können wir den Editor geöffnet lassen.
 +
 +Um dass Script ausführbar zu machen, geben wir das folgende ein:
 +
 +<code bash>
 +user@linux-sr:~$ chmod u+x beispielscript.sh
 +</code>
 +
 +Die müssen wir nur einmal tun. Jetzt können wir das Script ausführen:
 +
 +
 +<code bash>
 +user@linux-sr:~$ ./beispielscript.sh
 +insgesamt 8
 +-rwxrw-r-- 1 user user   58 Mär 24 10:30 beispielscript.sh
 +drwxrwxr-x 2 user user 4096 Mär 24 10:30 beispielverzeichnis
 +</code>
 +
 +Das ''%%./%%'' vor dem Dateiname ist notwendig, damit das Script im Dateiname gefunden wird.
 +
 +====Shebang====
 +
 +Normalerweise werden Shellbefehle einfach ausgeführt. Wenn aber die Befehle in einer anderen Shell ausgeführt werden sollen (z.B. Bash-Befehle in einen Z-Shell) ist es sinnvoll, vor die Befehle eine  sogenannten Shebang zu schreiben, der die richtige Shell startet. Für die Bash sieht der Shebang so aus:
 +
 +<code bash>
 +#!/bin/bash
 +</code>
 +
 +Somit sieht unser vollständiges Script ''%%beispielscript.sh%%'' so aus: 
 +
 +<code bash beispielscript.sh>
 +#!/bin/bash
 +
 +mkdir beispielverzeichnis
 +ls -l
 +rmdir beispielverzeichnis
 +</code>
 +
 +**Aufgabe 16**
 +
 +Teste das Beispielscript und den Editor Nano!
 +
 +**Aufgabe 17**
 +
 +Schreibe ein Shellscript ''%%meinscript.sh%%'' das folgendes leistet:
 +
 +  * die folgende Ordnerstruktur wird erstellt und mit dem Befehl ''%%tree%%'' ausgegeben
 +
 +{{ :profil:klasse9:baum.png?600 |}}
 +
 +  * die Datei ''%%adressen.txt%%'' wird in den Ordner Glauchau kopiert
 +  * man wechselt in den Ordner Glauchau 
 +  * es werden die ersten zwei Zeilen der Datei ''%%adressen.txt%%'' ausgegeben
 +  * es werden die letzten beiden Zeilen der Datei ''%%adressen.txt%%'' ausgegeben
 +  * die zweite Spalte der Datei ''%%adressen.txt%%'' (nach dem Komma) wird in die Datei ''%%test.txt%%'' umgeleitet
 +  * die Anzahl der Zeichen, Zeilen und Worte der Datei ''%%adressen.txt%%'' wird ausgegeben.
 +  * wechsele mit einem Befehl in das Elternverzeichnis von Erde
 +
 +
 +=====Weiteres zur Shellprogrammierung====
 +
 +Eine ausführliche Einführung in die Bashprogrammierung findet man z.B. hier:
 +
 +  * https://www-user.tu-chemnitz.de/~hot/unix_linux_werkzeugkasten/links.html
 +  * https://de.wikibooks.org/wiki/Linux-Praxisbuch/_Shellprogrammierung
 +
profil/klasse9/einfacheshellscripte.1648113627.txt.gz · Zuletzt geändert: 2022/03/24 10:20 von lutz