Bash Programmierung / Konzepte
 
StartSeite | BashProgrammierung/ | Neues | TestSeite | ForumSeite | Teilnehmer | Kategorien | Index | Hilfe | Einstellungen | Ändern

Veränderung (letzte Änderung) (keine anderen Diffs, Normalansicht)

Verändert: 1,92c1
Hier werden einige grundlegende Konzepte der Programmierung in der Bash
vorgestellt. Details sind bitte in bash(1) nachzulesen.

Dabei ist zu beachten, daß das meiste hier gesagte für alle
POSIX/sh-kompatiblen Shells gilt.

== Algemeines

Im allgemeinen ist es egal, ob man Kommandos einzeln auf der
Kommandozeile eingibt oder in einem file zur wiederholten abarbeitung
ablegt.

== Variablen

=== "Normale" Variablen

Durch ein einfaches [[Code]variablenname=Wert] wird die eine Variable
erzeugt und belegt.

=== Environment Variablen

Das Environment eines Prozesses sind externe Variablenbelegungen,
die einem Programm beim Start mitgegeben werden, von diesem modifiziert
werden und an seine Kindprozesse weitergegeben wird.

In der bash kann eine Variable durch [[Code]export variablenname] in das
Environment aufgenommen werden. Damit werden meist Defaultwerte oder
userspezifische Einstellungen für Programme gesetzt.

=== Expandieren von Variablen

Variablen werden mit [[Code]$variablenname] angesprochen.

== Wildcards

Die einfachen "Glob" Wildcards in POSIX kennen folgende Elemente:

* "?": Genau ein beliebiges Zeichen
* "*": Beliebig viele Zeichen (auch null)

Anmerkung für WindowsUmsteiger: das inkludiert auch Punkte
* "[abc]": "a" oder "b" oder "c"

== Interpretation einfacher Kommandos

Nach der Bestätigung des Befehls auf der Kommandozeile wird dieser
einmal an Spaces und TABs zerlegt. Variablen und andere Spezialitäten
werden expandiert. Dann wird der Befehl exekutiert.

Will man spezielle Zeichen der bash (Globs, Leerzeichen oder ähnliches)
"escapen" (also unschädlich machen) kann man für einzelne Vorkommen den
"\" benutzen. Für längere Abschnitte kann man einfache oder doppelte
Anführungszeichen benutzen. Dabei unterdrücken einfache
Anführungszeichen die Variablenerweiterung, doppelte nicht.

== Ein-/ Ausgabe

* Redirection, Pipes

== Kommandos verknüpfen

* "&&", "||", ";"

== Konditionale

* "if [ blah ] ; then :; fi"

== Schleifen

* "for i in blah ; do :; done"
* "while true ; do sleep 1; done"

== PitFalls? ==

Irgendwo bin ich gleich mal mit dem WhiteSpace

[[Code]
variable=wert
variable= wert
variable = wert
]

auf Probleme gestossen. Gibt es allgemeine Regeln für WhiteSpace in den diversen Shells bei Zuweisungen, Bedingungen, etc... ???

== FeedBack ==

Wollt ihr mehr oder lest ihr Euch eh brav die man-page durch? ;-))

: Beides. Wir wollen mehr und lesen brav. :-)



KategorieProgrammierBeispiele KategorieBash?

Verschoben nach SpracheSh

Verschoben nach SpracheSh
StartSeite | BashProgrammierung/ | Neues | TestSeite | ForumSeite | Teilnehmer | Kategorien | Index | Hilfe | Einstellungen | Ändern
Text dieser Seite ändern (zuletzt geändert: 26. April 2002 17:47 (diff))
Suchbegriff: gesucht wird
im Titel
im Text