Bash by Example

Dieses Howto

Dieses Howto soll mit einfachen Beispielen, das Arbeiten mit Shell-Skripten erklären. Unter Linux ist die bash das mächtigste Werkzeug. Mit Hilfe von Skripten lässt sich nahezu jede Aufgabe bewältigen.

Changelog

2006-02-28: Erste Version. Unvollständig. Nur mal ein Anfang, damit ich es nicht vergesse, dass ich so etwas schreiben wollte.

Meine Bitte

Bitte erweitert und verbessert das Dokument und wenn ihr mögt, könnt' ihr euch unter dem Punkt 'Autoren' eintragen.

Einfache Beispiele

Das erste Skript

Um ein Skript zu schreiben nutzt man am besten einen Editor seiner Wahl für Linux (z.B vi, nano oder pico). vi ist hier die beste Lösung, da keine Zeilenumbrüche generiert werden.

# vi skript01.sh

#!/bin/bash
echo "Hello world!"
exit 0

Der Klassiker. Die erste Zeile sagt der Shell mit welchem Programm das Skript interpretiert werden soll. In diesem Fall ist es die bash. Aber es können auch andere Shells verwendet werden (z.B sh,ksh oder csh). Wobei sich der Syntax bei den einzelnen Shells geringfügig unterscheidet.

Das Skript muss nun ausführbar gemacht werden und dann einfach mal starten.

# chmod u+x skript01.sh
# ./skript01.sh
Hello world!

Übergeben von Parametern

Übergabe eines Parameters

Gleiches Skript wie eben. Nur diesmal wird mit Aufruf des Skripts eine Variable an das Skript übergeben.

# vi skript02.sh

#!/bin/sh
echo "Hello $1!"
exit 0

./skript02.sh Claus
Hello Claus!

Alles klar soweit, oder? „$1“ ist der erste angegebene Parameter. Es können bis zu 9 Parameter dem Skript mitgegeben werden (in der bash sogar ein paar mehr). Diese würden dann $1 $2 $3 usw. lauten.

Übergabe mehrerer Parameter

#!/bin/sh
echo "Hello $1 $2 $3 $4!"
exit 0

# ./skript02.sh claus heini burschi anton
Hello claus heini burschi anton!

Ausgabe der Anzahl eingegebener Stellungs-Parameter

Um die Anzahl an Parametern ausgeben zu lassen, mit der das Skript ausgeführt wurde gibt es die Variable '#'

#!/bin/sh
echo "Es wurden $# Parameter angegeben"
exit 0

# ./skript03.sh claus heini burschi anton
Es wurden 4 Parameter angegeben

Ausgabe aller eingegebener Stellungs-Parameter

Ausgabe aller Parameter funktioniert analog mit der Variable '*'. Also:

#!/bin/sh
echo "Es wurden die Parameter \"$*\" angegeben"
exit 0

# ./skript03.sh claus heini burschi anton
Es wurden die Parameter "claus heini burschi anton" angegeben

Variablen und Arrays

Variablen

Auch in der Shell ist es möglich Variablen zu definieren und zu nutzen.

#!/bin/bash
variable="gibmichaus"
echo $variable
exit 0

Arrays

Auch Arrays lassen sich definieren.

#!/bin/bash
array=("wert 1" "wert 2" "wert 3" "wert 4")
echo ${array[*]}
exit 0

Statt des '*' kann man die Zahl des Feldes angeben. die '0' würde dann 'wert 1' ausgeben. Bei Arrays beginnt der erste „Speicherplatz“ immer beim Index 0.

Genauso kann man nun den Wert an der dritten Stelle ändern:

#!/bin/bash
array=("wert 1" "wert 2" "wert 3" "wert 4")
array[2]="neuer wert 3"
echo ${array[*]}
exit 0

Und auch der Lattenzaun kann hier wieder verwendet werden. Das '#' gibt hier die Anzahl der Elemente im Array aus:

#!/bin/bash
array=("wert 1" "wert 2" "wert 3" "wert 4")
echo ${#array[*]}
exit 0

if-else Anweisungen

#!/bin/bash

if [ "$1" = "true" ]; then
   echo "Hallo. Der Parameter ist $1"
else
    echo "Hallo. Der Parameter ist nicht $1"
fi

Autoren

Claus Malter

linux/bash_by_example.txt · Zuletzt geändert: 2007/06/11 18:54 von claus
chimeric.de = chi`s home Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0