Luis Kornblueh. May 22, 2014



Ähnliche Dokumente
Skripte. Beispiel. M. Fyta Computergrundlagen 73/93

Der zweite all unsere Datenbanken. Dieser Befehl ist etwas komplexer, aber bis auf das Passwort (kursiv fett) so zu übernehmen:

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Linux Prinzipien und Programmierung

Anleitung über den Umgang mit Schildern

SelfLinux cron

Primzahlen und RSA-Verschlüsselung

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

Repetitionsaufgaben Wurzelgleichungen

MARCANT - File Delivery System

Was meinen die Leute eigentlich mit: Grexit?

Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.)

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Deutsches Rotes Kreuz. Kopfschmerztagebuch von:

DYNAMISCHE SEITEN. Warum Scriptsprachen? Stand: CF Carola Fichtner Web-Consulting

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken?

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten!

Anspruchsvolle Dreierausdrücke zum selbstständigen Lernen

Erfahrungen mit Hartz IV- Empfängern

VibonoCoaching Brief -No. 18

von: Oktay Arslan Kathrin Steiner Tamara Hänggi Marco Schweizer GIB-Liestal Mühlemattstrasse Liestal ATG

Wir arbeiten mit Zufallszahlen

AutoCAD Dienstprogramm zur Lizenzübertragung

Zählen von Objekten einer bestimmten Klasse

Outlook-Daten komplett sichern

Kulturelle Evolution 12

Mediator 9 - Lernprogramm

Wir machen neue Politik für Baden-Württemberg

Standard Daten-Backup-Script

Dazu stellen Sie den Cursor in die Zeile, aus der eine Überschrift werden soll, und klicken auf die gewünschte Überschrift.

1 Vom Problem zum Programm

Hardware - Software - Net zwerke

Zur drittletzten Zeile scrollen

affilinet_ Flash-Spezifikationen

Der Gabelstapler: Wie? Was? Wer? Wo?

Python SVN-Revision 12

Anleitung: Webspace-Einrichtung

Whitepaper. Produkt: combit Relationship Manager 7. combit Relationship Manager -rückläufer Script. combit GmbH Untere Laube Konstanz

NoClick. Eine kurze Anleitung. Kommhelp e.v Vereinsregister. Spendenkonto kommhelp e. V. Konto Horstweg 25

Excel Funktionen durch eigene Funktionen erweitern.

Das Festkomitee hat die Abi-Seite neu konzipiert, die nun auf einem (gemieteten) Share Point Server

Software- und Druckerzuweisung Selbstlernmaterialien

SCHRITT 1: Öffnen des Bildes und Auswahl der Option»Drucken«im Menü»Datei«...2. SCHRITT 2: Angeben des Papierformat im Dialog»Drucklayout«...

Erwin Grüner

Übung 4: Schreiben eines Shell-Skripts

Professionelle Seminare im Bereich MS-Office

Widerrufsbelehrung der Free-Linked GmbH. Stand: Juni 2014

Bash-Skripting Linux-Kurs der Unix-AG

Java Kurs für Anfänger Einheit 5 Methoden

7 Rechnen mit Polynomen

SFTP SCP - Synology Wiki

COMPUTERIA VOM SERIENBRIEFE UND ETIKETTENDRUCK

PHP - Projekt Personalverwaltung. Erstellt von James Schüpbach

Druckerscriptsprache

FBA 6-16, Version für Jugendliche

Sichere Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere . der

Speicher in der Cloud

AW: AW: AW: AW: Kooperationsanfrage anwalt.de

Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut wird, dass sie für sich selbst sprechen können Von Susanne Göbel und Josef Ströbl

I.1 Die Parrot Assemblersprache

Etikettendruck mit Works 7.0

Warum Sie jetzt kein Onlinemarketing brauchen! Ab wann ist Onlinemarketing. So finden Sie heraus, wann Ihre Website bereit ist optimiert zu werden

A. Ersetzung einer veralteten Govello-ID ( Absenderadresse )

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Nina. bei der Hörgeräte-Akustikerin. Musterexemplar

Barcodedatei importieren

Nicht kopieren. Der neue Report von: Stefan Ploberger. 1. Ausgabe 2003

mit ssh auf Router connecten

Zusammenführen mehrerer Dokumente zu einem PDF In drei Abschnitten erstellen Sie ein Dokument aus mehreren Einzeldokumenten:

Internet online Update (Mozilla Firefox)

Dokumentenverwaltung im Internet

Grundlagen der Programmierung Prof. H. Mössenböck. 3. Verzweigungen

Erstellen der Barcode-Etiketten:

Der Klassenrat entscheidet

Einführung in TexMaker

Webalizer HOWTO. Stand:

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1

Zugriff auf Daten der Wago über eine Webseite

Copyright Sophie Streit / Filzweiber / Fertigung eines Filzringes mit Perlen!

Übungen Programmieren 1 Felix Rohrer. Übungen

Arbeit zur Lebens-Geschichte mit Menschen mit Behinderung Ein Papier des Bundesverbands evangelische Behindertenhilfe e.v.

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Arbeitshilfe "Tipps für Gespräche mit Vorgesetzten und KollegInnen" Was gilt für mich?

Lösungen zu Kapitel 7

5 DATEN Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

Eine eigene Seite auf Facebook-Fanseiten einbinden und mit einem Tab verbinden.

1. Was ihr in dieser Anleitung

Rock-Band. Einleitung. Scratch. In diesem Projekt lernst du, wie du deine eigenen Musikinstrumente programmieren kannst! Activity Checklist

Statuten in leichter Sprache

Tipp III: Leiten Sie eine immer direkt anwendbare Formel her zur Berechnung der sogenannten "bedingten Wahrscheinlichkeit".

Stellvertretenden Genehmiger verwalten. Tipps & Tricks

Java Webentwicklung (mit JSP)

Einfache Animation erstellen mit PhotoImpact

Hohe Kontraste zwischen Himmel und Landschaft abmildern

Was ist das Budget für Arbeit?

Geld Verdienen im Internet leicht gemacht

! " # $ " % & Nicki Wruck worldwidewruck

Transkript:

Einführung in die Bash Luis Kornblueh KlosterCluster Team 2013/2014, Klosterschule May 22, 2014 1 / 17

Inhaltsverzeichnis Einführung in das Scripting Einfache Beispiele Kommandos ersetzen Bedingungen Tests If/Then/Else Argumente Zugriff auf Kommandoargumente 2 / 17

Einführung in das Scripting Was ist ein Script? Definition: Ein Script ist einem Computerprogramm sehr ähnlich. Es kann allerdings nicht von alleine als Programm ablaufen. Shellskripten laufen in einer Kommandoshell wie der bash. Sie werden interpretiert. Scripts werden in Scriptsprachen wie perl, ruby oder python geschrieben. In unserem Fall ist der Scriptspracheninterpreter die bash. 3 / 17

Einführung in das Scripting Der Shebang Alle Shellskripte fangen mit einem shebang (#!) an. Der entweder von dem vollen Pfad zum entsprechenden Interpreter gefolgt wird wie z.b. /bin/bash oder durch /usr/bin/env bash. # This is the beginning of a shell script... Jede Zeile die mit # (mit Ausnahme des shebang) beginnt, ist ein Kommentar. Kommentare werden während der Ausführung ignoriert. Sie sollen den Code nur verständlicher machen! 4 / 17

Einführung in das Scripting Setzen von Variablen Erzeugen und Setzen von Variablen ist einfach: myvar="a new string variable!" Die neue Variable myvar kann nur als $myvar benutzt werden: echo $myvar A new string variable! Beachte, dass keine Leerzeichen links und rechts des Gleichheitszeichens steht das ist ganz wichtig! 5 / 17

Einfache Beispiele Hello World Wir schreiben einen neue Datei nennen wir sie hello.sh: echo Hello World! Nun ändern wir die Benutzerrechte der Datei so, dass sie ausführbar wird: chmod +x hello.sh Nun können wir das erste Shellskript laufen lassen!./hello.sh Hello World! 6 / 17

Einfache Beispiele Hello World - ein wenig anders Nun machen wir es etwas komplizierter und verwenden eine Variable in hello2.sh: STRING= Hello again, world! echo $STRING Wir ändern wieder die Zugriffsrechte und lassen das Script laufen: chmod +x hello2.sh &&./hello2.sh Hello again, world! 7 / 17

Einfache Beispiele Ein Backup-Script Nun folgt ein etwas sinnvolleres Script, das ein Backup deines Documents-Directory macht: tar -czf /backups/backup.tar.gz /Documents/ Dieses Script verwendet das tar Archivierungskommando: Wie macht man Tarballs: tar -cf <dest archive> <source> tar -xf <archive> 8 / 17

Kommandos ersetzen Verwendung der Ausgabe eines Kommanods Um die Ausgabe eines Kommandos nutzen zu können, setzt man das Kommando in Klammern mit vorgestelltem $: $(command) oder in backticks (nicht mehr empfohlen): `command` echo date echo $(date) Die Backtickmethode erfordert zusätzlich ein Escaping des \, ` und $ 9 / 17

Kommandos ersetzen Nocheinmal: das Backup-Script Versuchen wir nun, das Backup-Script ein wenig zu verbessern. Wir wollen unsere alten Backup-Archive nicht überscheiben. tar -cf /backups/docs $(date +%d%b%y).tar.gz /documents/ Heute schreiben wir eine Datei namens docs 21Nov2013.tar Die Manpage für date (man date) ist sehr hilfreich um die Formattierungsangaben zu verstehen. 10 / 17

Bedingungen Tests Ist das ein Test? Ab und zu muss man prüfen, ob eine Bedingung erfüllt ist oder nicht. Wir wollen nun sehen, wie man diese Tests durchführen kann. Testen einer Bedingung Es gibt viele Bedingungsausdrücke, die man in der Shell testen kann. test EXPRESSION [ EXPRESSION ] Diese Kommandos liefern als exit status 0 zurück, wenn die Bedingung wahr ist und andernfalls 1. Hinweis: man kann den exit status des letzten Kommandos der Variable $? entnehmen. 11 / 17

Bedingungen Tests Ausdrücke Das test Kommando hat viele built-in Testausdrücke, die wir benutzen können: Nützliche Testausdrücke Expression liefern wahr, wenn: [! EXPR ] EXPR ist falsch [ EXPR1 -a EXPR2 ] EXPR1 und EXPR2 sind wahr [ EXPR1 -o EXPR2 ] EXPR1 oder EXPR2 ist wahr [ INT1 -(eq/ne) INT2 ] ints sind geleich/ungleich [ INT1 -(gt/lt) INT2 ] INT1 ist größer als/kleiner als INT2 [ -o optionname ] Shelloption optionname ist an [ STR1 == STR2 ] die beiden Strings sind gleich 12 / 17

Bedingungen Tests Dateiabfragen Da häufig Dateien in Scripts gehandhabt werden, gibt es dafür extra Abfragen: Dateitests Expression liefert wahr wenn: [ -e FILE ] Datei existiert [ -r FILE ] existiert und ist lesbar [ -s FILE ] existiert und hat eine Größe > 0 [ -w FILE ] existiert und ist Beschreibbar [ -O FILE ] existiert und gehört dir [ -G FILE ] existiert und gehört deiner Gruppe Es gibt noch viele mehr, die man mit man test finden kann. 13 / 17

Bedingungen If/Then/Else Standard Wenn/Dann Die kompakteste Schreibweise des if Kommandos ist: if TEST-EXPR; then CONDITIONAL-COMMANDS; fi Zunächst wird TEST-EXPR ausgeführt, wenn der exit status wahr ist, wird danach CONDITIONAL-COMMANDS ausgeführt. Sonst, passiert nichts. if [ $? -eq 0 ] then echo Last command exited cleanly! fi 14 / 17

Bedingungen If/Then/Else Wenn/Dann/Sonst Wenn wir zwischen zwei Wegen entscheiden müssen, können wir einen else Zweig einführen: if [ $? -eq 0 ] then echo Last command exited cleanly! else echo Uh-oh - non-zero exit status! fi Beachte: Wenn man mehrere Kommandos in eine Zeile schreiben möchte, muss man sie mit Semikolons trennen. 15 / 17

Bedingungen If/Then/Else In voller Schönheit Beachtet man alles, ergibt sich: if TEST-COMMANDS; then CONSEQUENT-COMMANDS; elif MORE-TEST-COMMANDS; then MORE-CONSEQUENT-COMMANDS; else ALTERNATE-COMMANDS; fi 16 / 17

Argumente Zugriff auf Kommandoargumente Verwendung von Argumenten Wir haben bereits eine Reihe von Kommandos gesehen, bei denen das Verhalten mit Optionen verändert werden kann. Kommandozeilenargumente Das ist wirklich einfach: jedes Argument wird einer Variablen zugewiesen: $1, $2, $3, etc. $0 speichert den Namen des Scripts und $# enthält die Anzahl der Argumente. echo \$1 = $1 Was passiert mit einem zusätzlichen Argument beim Laufenlassen? 17 / 17