Übersicht Shell-Scripten

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

Shell-Scripting Linux-Kurs der Unix-AG

Shell-Scripting Linux-Kurs der Unix-AG

Shell-Scripting Linux-Kurs der Unix-AG

Bash-Skripting Linux-Kurs der Unix-AG

Bash-Skripting Linux-Kurs der Unix-AG

Bash-Scripting Linux-Kurs der Unix-AG

Arithmetik in der tcsh

Shell-Scripting Linux-Kurs der Unix-AG

#!/bin/bash. # Eingaben, if-schleife mit Bedingungsverknüpfung. # Variablen EINGABE=" " # Anweisungen. # Bildschirm löschen clear

Computer & GNU/Linux Einführung Teil 4

Vorlesung Unix-Praktikum

Einführung Unix Shell

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

Linux Prinzipien und Programmierung

Linux und Shell-Programmierung Teil 6

Technische Praxis der Computersysteme I 3. Vorlesung

Übung 4: Schreiben eines Shell-Skripts

Algorithmen und ihre Programmierung

Linux und Shell-Programmierung Teil 5

Skripte. Beispiel. M. Fyta Computergrundlagen 73/93

Fachhochschule Südwestfalen Wir geben Impulse. Kontrollstrukturen und Schleifen in Octave

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

105.1 Shell, Scripting

Vorlesung Unix-Praktikum

Übung: Entwickeln eines Shell-Skripts

Luis Kornblueh. May 22, 2014

Windows PowerShell. CmdLets. PipeLine / Filter. Variablen / Operatoren. Schleifen / Prüfmethoden. Funktionen / Skripte. Allgegenwärtige Parameter

Java I Vorlesung Imperatives Programmieren

Programmierkurs Python I

PostScript -Sprache. Frank Richter

01 Einführung in PHP. Einführung in PHP 1/13 PHP in Aktion

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

12 == 12 true 12 == 21 false 4 === 7 true 4 === "vier" false 4 === 4.0 false 12!= 13 true 12!== 12 false 12!== 12.0 true. 1 < 3 true 3 < 1 false

Schleifen: Immer wieder dasselbe tun

Grundlagen. Wie sind PHP-Dateien aufgebaut?

Übersicht. Einführung in Perl Datenstrukturen I. Datentypen Übersicht (1) Kernbegriffe. Kernbegriffe. Einführung der Datentypen.

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Arzu Sanli Ibrahim Canakci

Programmierkurs Python I

Shell-Programmierung

7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

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

Programmsteuerung mit PHP - if/else, elseif,switch

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

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

Übungen zur Vorlesung Wissenschaftliches Rechnen I. Grundelemente von Java. Eine Anweisung. wird mit dem Wertzuweisungsoperator = geschrieben.

1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster

Einführung in die Programmierung für NF. Algorithmen, Datentypen und Syntax

Erwin Grüner

GI Vektoren

Funktionen in JavaScript

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

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

Programmieraufgaben. 1. Hello World! Schreibe ein Programm, dass auf der Konsole den Text Hello World! ausgibt.

Dateneingabe und Transformation Übersicht

IT-Zertifikat: Allgemeine Informationstechnologien II PHP

Crashkurs Kommandozeile

Einführung in die Programmierung für Computerlinguisten

Ansprechen einer Anzahl von Variablen über einen Schleifendurchlauf

2 Eine einfache Programmiersprache

Schreibweise in IGOR: 6.02E-23

2 Systemadministration

Programmieren mit Python

6 Ein- und Ausgabe. Bisher war unsere (Bildschirm-) Ausgabe leichtflüchtig (

Technische Praxis der Computersysteme 1

Java Übung. Übung 2. Werner Gaulke. 19. April Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung.

Algorithmen und ihre Programmierung -Teil 2-

Informatik Repetitorium SS Volker Jaedicke

Python für Linguisten

Strings. Daten aus Dateien einlesen und in Dateien speichern.

2 Eine einfache Programmiersprache

JAVA-Datentypen und deren Wertebereich

Brückenkurs Programmieren

C++ Teil Schleifen. Man kann bestimme Anweisungen in einem Programm mehrfach ausführen lassen. Dazu gibt es in C++ verschiedene Schleifen.

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

Brainfuck Interpreter für ZX81

Praktische Übung. Die Lernplattformen ILIAS ist mit Stud.IP verbunden, sodass Sie Lernmodule dieser Plattform

Prinzipien der Softwareentwicklung S. Strahringer

System.out.println("TEXT");

Klassen und Objekte. Klassen sind Vorlagen für Objekte. Objekte haben. Attribute. Konstruktoren. Methoden. Merkblatt

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

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

Programmierkurs C++ Lösungen zum Übungsblatt 3. Nils Eissfeldt und Jürgen Gräfe. 2. November Aufgabe 5

ShellScripting : Shell Scripte

Programmieren lernen mit Visual Basic

Ideen und Konzepte der Informatik. Programme und Algorithmen Kurt Mehlhorn

Funktionen in JavaScript

Inhaltsverzeichnis. Kapitel i: Schnelleinstieg 13. Kapitel 2: Was sind Programme? 17. Kapitel 3: Wie erstellt man eigene Programme?

Programmieren in Java

Unix/Linux Grundlagen für Einsteiger

Einstieg in die Informatik mit Java

Arbeitsblätter für Algorithmierung und Strukturierung

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Runde 2: Von der Statik zur Dynamik - Team Header

Transkript:

!!!! Wichtig: Bei Shell-Scripten enden die Zeilen nicht mit einem Strichpunkt!!!! Erste Zeile eines Shell-Scripts: #! /bin/bash Variablen in Shell-Scripts: Variablennamen müssen mit einem Buchstaben beginnen, können Ziffern und _ enthalten, maximal 14 Zeichen lang sein und werden nach einer Konvention immer groß geschrieben. Inhalt: Variablen können Strings oder ganze Zahlen enthalten Zuweisung: VARIABLENNAME=Wert bzw. VARIABLENNAME= String Ausgabe: echo $VARIABLENNAME Sichere Ausgabe: (funktioniert auch mit leeren Variablen) echo $VARIABLENNAME Quoting: (deaktivieren von nachfolgendem Sonderzeichen wie z.b. $ oder ) Mit einem Backslash wird das nachfolgende Sonderzeichen deaktiviert. Der Befehl echo \$VARIABLENNAME erzeugt die Ausgabe $VARIABLENNAME und gibt nicht den Inhalt der Variable VARIABLENNAME aus. Backticks: `...` (backward pipe) Mit den Backticks wird eine sogenannte backward pipe ausgeführt, d.h. es wird erst der Befehl innerhalb der Backticks ausgeführt und das Ergebnis dieses Befehls an die Variable übergeben. z.b. wird bei dem Befehl VARIABLENNAME=`whoami` zuerst der Befehl whoami ausgeführt, der die Kennung des aktuell angemeldeten Users zurückgibt und dann dieses Ergebnis der Variable VARIABLENNAME zugewiesen. Mathematik in Shell-Scripten: Berechnungen im ganzzahligen Bereich werden mit dem Ausdruck expr durchgeführt. Er kann addieren ( + ), subtrahieren ( - ), multiplizieren ( * ) und dividieren ( / ) ERGEBNIS=`expr $SUMMAND1 + $SUMMAND2` ERGEBNIS=`expr $SUMMAND1 * 5` Seite 1 von 5

Bedingungstester: test (für if- und while-schleifen) Bei if- und while-schleifen ist eine Bedingung gefordert, um bestimmte Anweisungen auszuführen. Diese Bedingungen werden mit dem Befehl test getestet. Eigenschaften von Dateien testen: Name im Verzeichnis vorhanden, ist File: ( Parameter f ) if test f $FILE then... Hier wird getestet, ob der Name, der in der Variable FILE gespeichert ist, im aktuellen Verzeichnis vorhanden ist und ob er ein File (Datei) ist Name im Verzeichnis vorhanden, ist File und nicht leer: ( Parameter s ) if test s $DATEI then... Hier wird getestet, ob der Name, der in der Variable DATEI gespeichert ist, im aktuellen Verzeichnis vorhanden ist, ob er ein File ist und ob es nicht leer ist. Name im Verzeichnis vorhanden, ist Verzeichnis: ( Parameter d ) if test d $DIR then... Hier wird getestet, ob der Name, der in der Variable DIR gespeichert ist, im aktuellen Verzeichnis vorhanden ist und ob er ein Verzeichnis ist. Eigenschaften von Zeichenketten testen: String1 gleich String 2: ( Parameter = ) if test $TEXT1 = $TEXT2 then... oder if test $TEXT1 = String then... Hier wird getestet, ob die beiden Strings gleich sind. String1 nicht gleich String2: ( Parameter!= ) if test $TEXT1!= $TEXT2 then... oder if test $TEXT1!= String then... Hier wird getestet, ob die beiden Strings nicht gleich sind. String leer: ( Parameter z ) if test -z $TEXT1 then... Hier wird getestet, ob die Variable TEXT1 leer ist. Seite 2 von 5

Fortsetzung Bedingungstester: Eigenschaften von ganzen Zahlen testen: Parameter ne : Parameter eq : Parameter ge : Parameter gt : Parameter le : Parameter lt : ungleich gleich grösser oder gleich grösser kleiner oder gleich kleiner if test $ZAHL1 -gt $ZAHL2 then... oder if test $ZAHL lt 20 then... Hier wird getestet, ob der Wert der Variable ZAHL1 grösser ist als der Wert der Variable ZAHL2 bzw. ob der Wert der Variable ZAHL kleiner als 20 ist. Verknüpfung von Bedingungen: Die möglichen Testbedingungen können mit folgenden Operatoren verknüpft werden. -o für eine ODER-Verknüpfung (OR) -a für eine UND-Verknüpfung (AND)! für eine NICHT-Verknüpfung (NOT) Es ist unter Umständen sinnvoll, die einzelnen Testbedingungen in Klammern zu setzen. while test ( $SCHLEIFE ne 0) a ( $ENDE!= JA ) then... Die while-schleife wird solange ausgeführt, solange der Wert der Variablen SCHLEIFE ungleich 0 ist und der Wert der Variable ENDE ungleich JA ist. Seite 3 von 5

Bedingte Ausführungen: if-struktur: if test $VARIABLE = Wert then Anweisungen bei erfüllter Bedingung... else Anweisungen bei nicht erfüllter Bedingung... fi Der else-zweig kann wegfallen. Die if-struktur wird immer mit einem fi beendet. while-struktur: while test $VARIABLE = Wert Anweisungen... ne Die Anweisungen werden solange ausgeführt, bis die Bedingung nicht mehr erfüllt ist. Die Anweisungen der while-struktur werden immer zwischen einem und einem ne eingeschlossen. for-struktur: for VARIABLE in Liste mit Werten Anweisungen... ne Die Anweisungen werden für jedes Element in der Liste mit Werten ausgeführt. Dabei enthält VARIABLE das aktuelle Listenelement. for NAME in Stefan Hans Peter Tom Sepp echo Name: echo $NAME ne Diese Schleife gibt nacheinander die Namen aus. Seite 4 von 5

Positionsparameter: Wenn man längere Ausgaben bearbeiten muss, kann man dazu die Positionsparameter nutzen. Um eine Ausgabe in die Pufferspeicher der Positionsparameter zu schreiben wird der Befehl set benutzt. set `ls l` Es gibt 9 Positionsparameter von $1 bis $9. Zusätzlich wird die Anzahl der ausgegebenen Zeilen in der Variable $# gespeichert. Die Positionsparameter beginnen immer am Anfang des Puffers. Um nun das Fenster mit den 9 Positionsparametern zu verschieben, wird der Befehl shift benutzt. set `ls l` Einlesen in den Puffer echo $9 Ausgeben des Positionsparameters $9 (Wert z.b. 20) shift 8 Verschieben des Positionsrahmenfensters echo $1 Ausgeben des Positionsparameters $1 ( Jetzt gleicher Wert wie vorher bei $9 = 20) Sobald im Puffer ein Leerzeichen (Blank) auftritt, wird der nächste Positionsparameter gefüllt. Pufferinhalt: Dies ist eine Uhrzeit: 12:29 Inhalt Pos.-Paramter $1: Dies Inhalt Pos.-Paramter $2: ist Inhalt Pos.-Paramter $3: eine Inhalt Pos.-Paramter $4: Uhrzeit: Inhalt Pos.-Paramter $5: 12:29 Dateihandling Dateierzeugung: Die Ausgabe eines Befehls kann in eine Datei umgeleitet werden. Dies geschieht mit folgenden Operatoren: Datei überschreiben bzw. neu anlegen: ( Operator > ) echo Text > Dateiname Schreibt den String Text in die Datei Dateiname. Wenn die Datei vorhanden ist, wird sie überschrieben. An Datei anhängen bzw. neu anlegen: ( Operator >> ) echo Text >> Dateiname Hängt den String Text in die Datei Dateiname hinten an. Wenn die Datei nicht vorhanden ist, wird sie angelegt. Seite 5 von 5