BASH: Probleme mit set

Post Reply
Message
Author
Heiko

BASH: Probleme mit set

#1 Post by Heiko »

Hallo Gemeinde,
ich hab da ein kleines Problem mit dem setzen einer Variablen in/unter BASH. Ist eigendlich simpel, warscheinlich sehe ich bloß den Wald vor lauter Bäumen nicht ...
Also, ich will in .profile eine tageszeitabhängige Begrüßung einstellen. set $STUNDE="date +%H" (Randinfo: soll mit case ausgelesen werden) verändert $STUNDE nicht (echo $STUNDE bringt nur eine Leerzeile). Komischerweise funktioniert set $USER="id -un" im gleichen Skript (nur vorher) und im gleichen Syntax problemlos.
Wie gesagt, ich seh wohl den Baum vor lauter Wäldern nicht mehr, kann mich hier jemand auf die richtige Spur bringen?
MfG,
Heiko

User avatar
hjb
Pro-Linux
Posts: 3264
Joined: 15. Aug 1999 16:59
Location: Bruchsal
Contact:

Re: BASH: Probleme mit set

#2 Post by hjb »

Hi,

natürlich funktioniert set $user="id -un" nicht, du denkst nur, daß es geht, weil du keine Fehlermeldung bekommst. Denn in der Anweisung sind gleich zwei Fehler.

$user hat natürlich einen Wert, z.B. heiko. set $user= ist damit das gleiche wie set heiko=. Es funktioniert, aber nicht ganz wie beabsichtigt <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">

Zum zweiten muß man einen Kommandoaufruf, dessen Ausgabe man ins Skript einbinden will, so schreiben: $(id -un). Außerdem kann man das set weglassen. Der korrekte Befehl heißt also

USER=$(id -un)

und für die Zeit:

STUNDE=$(date +%H)

Nicht vergessen, die Variablen zu exportieren, sonst bleiben sie für andere Programms und Shells unsichtbar.

Gruß,
hjb
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?

Heiko

Re: BASH: Probleme mit set

#3 Post by Heiko »

Vielen Dank <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">
Genau das war's...
MfG,
Heiko

Post Reply