PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : bash-Script Syntax



Miksch
11.10.06, 14:51
Hallo Forum! :)
Ich fange gerade an mich mit bash-Script-Programmierung zu beschaeftigen.
Dabei habe ich folgendes Uebungsskript erstellt:

#! /bin/bash
#Name
echo -n 'username:'
read name
#Home
echo -n "Homeverzeichnis [/home/$name]:"
read home
if [ -z "$home" ]; then
home=/home/$name
fi
#Gruppe
echo -n "Gruppe [$gruppe]:"
if [ -z "$gruppe" ]; then
gruppe=users
fi
#Kommentar
echo -n 'Kommentar:'
read kommentar
useradd - m -d $home -g $gruppe -c $kommentar $name

Nach dem Aufruf dieses Skripts werden alle einzelnen Punkte abgefragt. Ich verstehe jedoch nicht, warum in der Anzeige

Gruppe []:Kommentar:
erscheint. Die Erstellung des neuen Users funktioniert offenbar fehlerfrei.
TIA und viele Gruesse,
Miksch

carstenj
11.10.06, 14:53
Hi,

weil du das mit Echo ausgibst? Was sollte denn da sonst stehen? "gruppe" ist offenbar eine nicht belegte Umgebungsvariable.

Miksch
11.10.06, 15:02
Eigentlich sollte da

Gruppe:
Kommentar:
stehen.
Gruss,
Miksch

Escorte2
11.10.06, 15:13
Mit -n bei echo unterdrückst Du den Zeilenumbruch, kein Wunder dass das in einer Zeile steht ;-)

Miksch
11.10.06, 18:17
Danke Escorte2! :)
Ohne -n klappt es.
Aber warum klappte es nur in dieser Zeile nicht. In den anderen ist mir das ja auch nicht passiert.
Gruss, Miksch

gmk
11.10.06, 18:21
Bei den anderen liest du mit ğread fooĞ die jeweiligen Parameter ein. Wahrscheinlich wolltest du eigentlich nach der Zeile z.B. mit ğread gruppeĞ die Gruppe einlesen ...

Miksch
12.10.06, 05:59
...ohja, hast Recht! Vielen Dank! :)
Herzliche Gruesse,
Miksch

suck
12.10.06, 15:13
Das "read home" ist bzw. sinnfrei, denn du setzt $home eh immer auf "/home/$user" oder "".

Miksch
12.10.06, 16:01
Danke! :)
...fange eben erst an das Thema zu lernen.;)
Gruss,
Miksch

gmk
12.10.06, 21:46
Das "read home" ist bzw. sinnfrei, denn du setzt $home eh immer auf "/home/$user" oder "".
Aber doch nur wenn der Parameter 'home' zu diesem Zeitpunkt noch leer ist (was der Fall ist, wenn man dort einfach nur Enter drückt), oder übersehe ich irgendetwas?

suck
12.10.06, 21:50
*grummel* nein..