Shell-Scripting Linux-Kurs der Unix-AG

Ähnliche Dokumente
Shell-Scripting Linux-Kurs der Unix-AG

Shell-Scripting Linux-Kurs der Unix-AG

Shell-Scripting Linux-Kurs der Unix-AG

Bash-Scripting Linux-Kurs der Unix-AG

Bash-Skripting Linux-Kurs der Unix-AG

Bash-Skripting Linux-Kurs der Unix-AG

Übersicht Shell-Scripten

Skripte. Beispiel. M. Fyta Computergrundlagen 73/93

Vorbemerkung. Allgemeines zu Shell Scripts. Aufruf. Einfaches Beispiel

Computer & GNU/Linux Einführung Teil 4

Einführung Unix Shell

Linux und Shell-Programmierung Teil 5

Die Shell. Ein Vortrag von Frederik und Michael 1 / 35

Shellprogrammierung. Einführung in Linux. Antonia Blanke. Shellprogrammierung Die Linux Shell Besondere Zeichen Pipes Variablen Bedingungen und Tests

Allgemeines. Shell Programmierung Unix. Kommentar. Vorgangsweise. Mag. Thomas Griesmayer

Vorlesung Unix-Praktikum

Technische Praxis der Computersysteme 1

Alles, was man auf der Kommandozeile eingeben kann, kann man auch in einem Skript verwenden. Umgekehrt gilt das gleiche.

Arithmetik in der tcsh

Arzu Sanli Ibrahim Canakci

Systemverwaltung mittels Skripts

Shell-Programmierung. von Rolf Schmidt für. LUG Frankfurt

Luis Kornblueh. May 22, 2014

105.1 Shell, Scripting

Linux und Shell-Programmierung Teil 6

Unix-Grundkurs 1. Thema heute: Shell-Skripten

Übersicht PERL. !!!! Wichtig: Nach dem Befehl einem Strichpunkt setzen!!!!

Linux Prinzipien und Programmierung

Linux I II III Res/Pro WN/TT Reguläre Ausdrücke Editoren Scripting. Linux II. 2 Linux II. Reguläre Ausdrücke Editoren Scripting. Ressourcen-Vorkurs

Korn-Shell: Einführung in Shellscripte 1. Übersicht: Einführung 2. Die Kornshell im Detail 3.Grundlagen der Programmierung

Korn-Shell: Einführung in Shellscripte 1. Übersicht: Einführung - 2. Die Kornshell im Detail - 3.Grundlagen der Programmierung

Teil 1: Einführung in die Shell. Was ist die Shell? Wichtige Kommandos (1) Einführung in die Shell. Grundlagen der Shell-Programmierung

Shell. Oder Konsole suchen im Application Finder. Auch Terminal, Bash oder Kommandozeile genannt. Bash nimmt Befehle entgegen und führt diese aus

Unix-Shells. mehrere Befehle in einer Zeile. bash: Grundlagen. Ein- und Ausgaben umlenken. Befehle: Dateien und Verzeichnisse (1)

GNU/Linux Introduction Part 3. Simon M. Haller, Sebastian Stabinger iis.uibk.ac.at

Linux II. Reguläre Ausdrücke Editoren Scripting. 2 Linux II. Linux I II III Res WN/TT NLTK XML Weka E Reguläre Ausdrücke Editoren Scripting

UNIX/Linux Lösung. Mär 08, 16 16:11 Seite 1/6

Hochschule Für Angewandte Wissenschaften FH München Sommersemester Thomas Kolarz. Folie 1.

Patricia Jung. Einführung in die Shellprogrammierung. Modul IF LIN 04 der Linux-Akademie im Rahmen der Informatica Feminale 2008 in Bremen

Übung: Entwickeln eines Shell-Skripts

Vorlesung Unix-Praktikum

Übung 4: Schreiben eines Shell-Skripts

Shell-Programmierung

Kommandozeile und Batch-Dateien. Molekulare Phylogenetik Praktikum

Vorlesung 4: Shell-Scripting (Teil 1)

SelfLinux Dateien unter Linux

Linux Kommandozeile: Einfache Skripte. 1 Wiederhohlung. 2 Einfache Skripte

Einführung in die Kommandozeile

Computer & GNU/Linux Einführung Teil 3

UNIX Die wichtigsten Befehle

Eine JAVA Einführung ... Quellcode:... COMA Übung 3. T.Bosse. A.Griewank. Vorschau JAVA Programme Sprachen Kate

Arbeiten mit der Shell Teil 1

Vorlesung Unix-Praktikum

Einführung in die Computerlinguistik

Eine kleine Befehlssammlung für Java Teil1

Runde 2: Von der Statik zur Dynamik - Team Header

UNIX/Linux Lösung. Mär 18, 18 15:34 Seite 1/6

SelfLinux Dateien unter Linux

Arbeiten mit der Shell Teil 1

ShellScripting : Shell Scripte

javascript Coding-Guidelines 2. Ausgabe Februar 2015 Der Guideline beschreibt den verwendeten Coding-Stil von javascript als eigene Richtline.

Grundlagen der Shellskript-Programmierung

Programmieren I + II Regeln der Code-Formatierung

Arbeiten mit der Shell Teil 2

Deshalb ist hello + world = 0. Umgekehrt gilt das Gleiche, weshalb 8 plus 3 gleich 83 ist. Dies ist in Zeile 5 in Terminal 2 gezeigt. In der Regel sol

Betriebssysteme I WS 2016/17. Prof. Dr. Dirk Müller. 5 Shell-Programmierung

Programmierwerkzeuge unter Unix

Technische Praxis der Computersysteme

Bash Skripte erlauben die Automatisierung von wiederkehrenden Befehlsfolgen.

Lösung von Übungsblatt 7

BASH Handout Vorlesungsbegleitend Version

Computer & GNU/Linux Einführung Teil 3

Grundlagen der Informatik Vorlesungsskript

Crashkurs Kommandozeile

Vorlesung Skriptsprachen Duale Hochschule Stuttgart Sommersemester Dipl.-Ing. (FH) Volker Schepper

UNIX - LINUX Shell Programmierung

Programmieren I + II Regeln der Code-Formatierung

Vorlesung Unix-Praktikum

ZWEITE ÜBUNG ZUR EINFÜHRUNG IN DIE PROGRAMMIERUNG FÜR COMPUTERLINGUISTEN LEONIE WEIßWEILER

Benutzung der Manpage, Shell Teil 3

Vorsemesterkurs Informatik Sommersemester Aufgabenblatt Nr. 1B

Übung 2 - Betriebssysteme I

Grundlagen. Wie sind PHP-Dateien aufgebaut?

Linux Tutorium. 12. Shellprogrammierung. Version vom :38:56

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

Arbeiten mit der Shell Teil 1

Arbeiten mit der Shell Teil 2

Einige Eigenschaften der Bourne-Shell und der bash

Computer & GNU/Linux Einführung Teil 2. Simon Haller iis.uibk.ac.at

Basiskonzepte des Rechnerbetriebs

Linux-Einführung Übung

Datenbanken erstellen Liste von Datenbanken anzeigen Datenbanken löschen. MySQL 4, 5. Kapitel 06: Datenbanken. Marcel Noe

Aufgabensammlung IT Shellprogrammierung Teil I

Proseminar. C-Programmierung Grundlagen und Konzepte. Der Präprozessor. von: Svenja Neef

Sep 25, 18 8:36 UNIX/Linux Lösung

Transkript:

Shell-Scripting Linux-Kurs der Unix-AG Benjamin Eberle 6. Juli 2016

Was ist ein Shell-Script? Aneinanderreihung von Befehlen, die ausgeführt werden Bedingte und wiederholende Ausführung möglich Nützlich bei wiederkehrenden Routine-Aufgaben, die aus mehreren Befehlen bestehen Scripte müssen ausführbar sein (x bei Zugriffsrechten) Benjamin Eberle Shell-Scripting 6. Juli 2016 2 / 17

Hello World! 1 #!/ bin / sh 2 echo " Hello World! " Gibt Hello World! auf der Standard-Ausgabe aus # fängt einen einzeiligen Kommentar an #! (Shebang) gibt an, mit welchem Programm das Script ausgeführt werden soll Shell-Scripte werden von einer Shell (z. B. /bin/sh oder /bin/bash ) ausgeführt echo gibt Text zwischen den Anführungszeichen auf der Standard-Ausgabe aus ( echo -n ohne folgenden Zeilenumbruch) Benjamin Eberle Shell-Scripting 6. Juli 2016 3 / 17

Variablen Shellvariablen nur in der aktuellen Shell verfügbar wird mit Variable=Wert definiert mit $Variable kann auf die Variable zugegriffen werden oder: ${Variable} (nützlich, wenn die Variable in einer Zeichenkette eingebettet ist) löschen mit unset Benjamin Eberle Shell-Scripting 6. Juli 2016 4 / 17

Variablen Umgebungsvariable Weitergabe an Kindprozesse mit export VARIABLE Mit export -n wird aus einer Umgebungsvariable wieder eine Shellvariable Benjamin Eberle Shell-Scripting 6. Juli 2016 5 / 17

Zeichenketten Zeichenketten werden z. B. als Argument für echo verwendet auch für Dateinamen, Parameter, etc. müssen in Anführungszeichen gesetzt werden wenn sie Leeroder andere Sonderzeichen enthalten mit doppelten Anführungszeichen werden Variablennamen durch den Inhalt ersetzt Benjamin Eberle Shell-Scripting 6. Juli 2016 6 / 17

Zeichenketten Beispiel 1 #!/ bin / sh 2 nachricht = ' Hallo Welt! ' 3 echo " Die Nachricht lautet : $ { nachricht } " 4 echo ' Die Nachricht lautet : $ { nachricht } ' Ausgabe: 1 Die Nachricht lautet : Hallo Welt! 2 Die Nachricht lautet : $ { nachricht } Benjamin Eberle Shell-Scripting 6. Juli 2016 7 / 17

Programmparameter Programme/Scripte im aktuellen Verzeichnis werden mit./programm aufgerufen es können Parameter angegeben werden:./programm par1 par2 auf diese kann im Script mit $1, $2 zugegriffen werden $* enthält alle Parameter $# enthält die Anzahl der übergebenen Parameter $0 enthält den Programm-/Script-Namen Benjamin Eberle Shell-Scripting 6. Juli 2016 8 / 17

Exit-Status Programme können mit oder ohne Fehler beendet werden Kein Fehler bedeutet Rückgabewert 0 Fehler erzeugen einen Rückgabewert größer 0 Kann mit $? ausgelesen werden Kann durch exit Wert gesetzt werden (Bsp. exit 33 ) Code hinter && wird nur ausgeführt, wenn der erste Befehl erfolgreich war z.b. rm foo && echo "geloescht!" Code hinter nur, wenn der erste Befehl nicht erfolgreich war z.b. rm verz/ echo "geht nicht" Benjamin Eberle Shell-Scripting 6. Juli 2016 9 / 17

test test überprüft eine Bedingung, Kurzschreibweise mit [ ] -e DATEI (exists): wahr, wenn die DATEI existiert -d VERZ (directory): wahr, wenn die VERZ ein Verzeichnis ist s1 = s2 : wahr, wenn die Zeichenkette s1 identisch mit s2 ist s1!= s2 : wahr, wenn sie nicht identisch sind n1 -eq n2 (equal): wahr, wenn n1 und n2 gleich sind n1 -ne n2 (not equal): wahr, wenn n1 und n2 nicht gleich sind Benjamin Eberle Shell-Scripting 6. Juli 2016 10 / 17

test test überprüft eine Bedingung, Kurzschreibweise mit [ ] n1 -gt n2 (greater then): wahr, wenn n1 größer als n2 ist n1 -ge n2 (greater equal): wahr, wenn n1 größer gleich n2 ist n1 -lt n2 (lower then): wahr, wenn n1 kleiner als n2 ist n1 -le n2 (lower equal): wahr, wenn n1 kleiner gleich n2 ist Benjamin Eberle Shell-Scripting 6. Juli 2016 11 / 17

Beispiele test -e foo : überprüft ob die Datei foo im aktuellen Verzeichnis existiert [ -e foo ] : macht dasselbe [ abc = def ] : überprüft ob der Text abc mit def übereinstimmt [ 23 -lt 42 ] : überprüft ob 23 kleiner als 42 ist [!... ] : kehrt die Bedingung um Ergebnis der Überprüfung findet sich im Exit-Status und kann mit echo $? abgefragt werden Wichtig: Leerzeichen nach der öffnenden und vor der schließenden eckigen Klammer Benjamin Eberle Shell-Scripting 6. Juli 2016 12 / 17

if-bedingung 1 if Bedingung1 2 then 3 Befehl1.1 4 Befehl1.2 5 elif Bedingung2 # elif ist optional 6 then 7 Befehl2.1 8 Befehl2.2 9 else # else ist optional 10 Befehl3.1 11 Befehl3.2 12 fi wenn Bedingung1 erfüllt ist, werden die Befehle 1.1 und 1.2; wenn Bedingung1 nicht erfüllt ist, aber Bedingung2, werden die Befehle 2.1 und 2.2; Benjamin Eberle Shell-Scripting 6. Juli 2016 13 / 17

Beispiele 1 #!/ bin / sh 2 if [ $ # - eq 2 ]; then # Anz. Parameter 3 if [ $1 - gt $2 ] # $1 > $2 4 then 5 echo $1 " ist groesser als " $2 6 elif [ $1 - lt $2 ] # $2 > $1 7 then 8 echo $1 " ist kleiner als " $2 9 else # ansonsten $1 == $2 10 echo $1 " und " $2 " sind gleich gross " 11 fi 12 else # nicht genug Parameter 13 echo " Es muessen 2 Parameter uebergeben werden! " 14 fi Benjamin Eberle Shell-Scripting 6. Juli 2016 14 / 17

for-schleifen 1 for i in XXX 2 do 3 Befehl 4 done XXX kann eine Liste oder ein Befehl sein Befehle müssen ` befehl ` oder $(befehl) geschrieben werden `: Backtick (Akzent Gravis), links neben Backspace for i in $* geht alle Parameter durch Benjamin Eberle Shell-Scripting 6. Juli 2016 15 / 17

Beispiele 1 #!/ bin / sh 2 liste = '1 2 3 ' # Hochkomma, auf der # - Taste 3 for i in $liste 4 do 5 echo $i 6 done 1 #!/ bin / sh 2 for i in ` seq 1 3 ` # Gravis, neben der? - Taste 3 do 4 echo $i 5 done 1 #!/ bin / sh 2 for i in $ ( seq 1 3) 3 do 4 echo $i 5 done Benjamin Eberle Shell-Scripting 6. Juli 2016 16 / 17

nützliche Dinge read wartet auf eine Eingabe ins Terminal. Wird mit Enter bestätigt read -s liest die Eingabe ohne sie anzuzeigen sleep 10 wartet 10 Sekunden ab $((Ausdruck)) wertet den Ausdruck arithmetisch aus x=$(($x+1)) erhöht x um eins lange Befehle können mit \ auf mehrere Zeilen aufgeteilt werden: 1 mv verzeichnis / mit / vielen / unterverzeichnissen / abc \ 2 in / ein / anderes / verzeichnis / Benjamin Eberle Shell-Scripting 6. Juli 2016 17 / 17