[EasyLinux-Ubuntu] Programm gesucht

Uwe Herrmuth u.herrmuth at gmx.de
Mon Dez 17 12:50:27 CET 2007


Hallo Tobias,

Am Sonntag, 16. Dezember 2007 22:24 schrieb Tobias Barth:

> > #!/bin/bash
> > month=`date +%m`
> > day=`date +%d`
> > if [[ "$day" < "24" ]] || [[ "$day" = "24" ]] && [[ "$month" =
> > "12" ]]; then xsnow
> > fi
>
> ein paar Anmerkungen/Fragen dazu, nur aus Interesse:
> - Warum sind die Bedingungen von doppelten eckigen Klammern umgeben;
> Sollten nicht einfache als Substitut für test ausreichen?

Der Haken liegt wohl im Vergleichsoperator "<" - da dürfte die Bash eine 
fehlende Datei 24 anmeckern. Prinzipiell hast Du aber mit den einfachen 
Klammern recht. In der ksh und der Bash werden aber zum Stringtest doppelte 
eckige Klammern genommen.

> - Sind die beiden ersten Bedingungen nicht zusammenzufassen als:
> 	"$day" -le "24"

Diese -xx-Operatoren hab ich immer nicht im Kopf. ;-) Deshalb arbeite ich 
lieber mit den mathematischen Ausdrücken. Aber um die Frage zu beantworten:
Ja das kann man so machen - und dann kannst Du acuh einfache Klammern 
verwenden.

Viele Grüße
Uwe


-- 
OS: Debian GNU/Linux 4.0 Kernel 2.6.18 KDE 3.5.5