bash-Syntax

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
guennid

bash-Syntax

Beitrag von guennid » 27.09.2003 09:19:51

Kann mir jemand sagen, wo ich eine ordentliche, systematische Beschreibung der Syntax für die Erstellung von bash-shell-Skripten (möglichst auf Deutsch) finde.
Grüße, Günther

Jens Oeser
Beiträge: 96
Registriert: 17.07.2002 17:04:22
Lizenz eigener Beiträge: GNU Free Documentation License

Beitrag von Jens Oeser » 27.09.2003 09:42:18

Hallo,

es existieren die Pakete doc-linux-de, doc-linux-html und doc-linux-text. Darin findest Du ein oder 2 HOWTOs zu Bash, aber in wie weit die Deutsch sind, weis ich nicht. Alternativ gab es oder gibt es ein Buch von Helmut Herold, in dem alle Shell's behandelt wurden/werden. Ich perönlich habe von O'Reilly eine englisches Buch (http://www.oreilly.de/catalog/bash2/), das meines Erachtes recht gut gelungen ist. Ansonsten findest Du vielleicht unter http://www.tldp.org noch etwas dazu?!?

Viele Grüße,
Jens.

Benutzeravatar
godsmacker
Beiträge: 902
Registriert: 16.03.2003 21:50:26
Lizenz eigener Beiträge: Artistic Lizenz
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von godsmacker » 27.09.2003 10:24:59

Was mir dazu einfällt ist das "Advanced Bash-Skripting Tutorial" oder so ähnlich.
Ich weiß nicht, ob es bei genanntem schon dabei ist, aber es gibt das wohl auf jeden Fall auf deutsch irgendwo..
Nur um google anzuschmeißen war ich jetzt zu faul :)

guennid

Beitrag von guennid » 28.09.2003 13:17:46

Bedanke mich für eure Hinweise. Dann will ich mich mal auf die Suche machen.
Grüße, Günther

guennid

Beitrag von guennid » 28.09.2003 19:11:20

An die Bücher komme ich erst nächste Woche.
Ich habe zwar einige Erfahrung in Pascal, aber ich bin offensichtlich nicht in der Lage, folgendes kleines shell-script richtig zu schreiben. Kann mir jemand sagen, was ich hier falsch schreibe:
#! /bin/sh
#Prog. schaltet den Rechner aus. Benötigt super
read -p "j drücken, wenn Sie ausschalten wollen " wahl
clear
if [ $wahl=j ]; then
super shutdown -h now
fi
egal, was ich eingebe, das if wird immer angesprungen.
Wozu ist eigentlich das Semikolon gut?
Grüße Günther

Benutzeravatar
npi
Beiträge: 567
Registriert: 03.08.2003 17:52:10

Beitrag von npi » 28.09.2003 20:14:38

hast du es so schon mal probiert (ungetestet)?

Code: Alles auswählen

#! /bin/sh
#Prog. schaltet den Rechner aus. Benötigt super
read -p "j drücken, wenn Sie ausschalten wollen " wahl
clear
if [ "$wahl" = "j" ]; then
super shutdown -h now
fi
npi

Chimerer
Beiträge: 514
Registriert: 28.01.2002 16:10:44

Beitrag von Chimerer » 28.09.2003 22:56:27

Günther Ditthardt hat geschrieben: Wozu ist eigentlich das Semikolon gut?
Grüße Günther
Das wird gebraucht, weil in der gleichen Zeile noch ein Befehl steht. (then)

Ich würde den read-Befehl noch mit "-n 1" ergänzen.

@npi: Sieht richtig aus. ;)

guennid

Beitrag von guennid » 28.09.2003 23:58:30

wie soll das aussehen mit "-n 1"? Ich habe alles Mögliche versucht, aber es funktioniert nicht.
Grüße, Günther

Benutzeravatar
spiffi
Beiträge: 1128
Registriert: 09.08.2003 19:02:27

Beitrag von spiffi » 29.09.2003 01:30:57

Günther Ditthardt hat geschrieben:wie soll das aussehen mit "-n 1"?
So zum Beispiel:

Code: Alles auswählen

#!/bin/sh
# Prog. schaltet den Rechner aus. Benötigt super
read -n 1 -p "j drücken, wenn Sie ausschalten wollen " wahl
clear
if [ $wahl = "j" ]
then
   super shutdown -h now
fi
Das -n 1 sorgt dafür, daß nur ein Zeichen eingelesen wird, statt einer ganzen Zeile.

guennid

Beitrag von guennid » 30.09.2003 17:19:47

Es lag an fehlenden Leerzeichen vor und hinter dem Gleichheitszeichen in der if-Klammer.
Für'n Pascalianer ist das schon eine merkwürdige Sprache. Bei der Zuweisung eines Wertes an eine Variable darf (oder braucht?) da kein Leerzeichen zu stehen.
Nochmals danke für die Hilfe.
Grüße, Günther

Antworten