Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
-
snoop_hallo
- Beiträge: 110
- Registriert: 29.03.2005 19:24:45
-
Kontaktdaten:
Beitrag
von snoop_hallo » 11.11.2005 07:33:21
Ich habe ein Shellscript mit einer if Anweisung geschrieben. Allerdings gibt es dabei einige Probleme, also es wird nicht richtig angenommen. Kann vielleicht jemand mal drüber schauen und vielleicht sagen wo der fehler liegen könnte.
Code: Alles auswählen
b = 6
if [ $b -ge 5]; then
echo "test"
else
echo "test2"
fi
-
Savar
- Beiträge: 7174
- Registriert: 30.07.2004 09:28:58
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Berlin
Beitrag
von Savar » 11.11.2005 07:43:12
verschoben von Grundsatzfragen
Gruß Savar
PS:
bei den [ ] muss IMMER ein Leerzeichen sein und beim Verwenden einer Variablen, darf KEIN Leerzeichen zwischen Variablenname und dem Gleichheitszeichen, bzw. zws. = und dem Wert sein:
Code: Alles auswählen
b=6
if [ $b -ge 5 ]; then
echo "test"
else
echo "test2"
fi
-
snoop_hallo
- Beiträge: 110
- Registriert: 29.03.2005 19:24:45
-
Kontaktdaten:
Beitrag
von snoop_hallo » 11.11.2005 07:51:46
Okay das war eben mein Fehler, die leerzeichen oder keine leerzeichen sind alle richtig gesetzt, allerdings kommt es immer noch zu fehlern und es wird nicht richtig ausgeführt.
-
Maj0r
- Beiträge: 476
- Registriert: 08.12.2003 14:52:39
- Wohnort: Jüchen, Ne
-
Kontaktdaten:
Beitrag
von Maj0r » 11.11.2005 08:27:00
snoop_hallo hat geschrieben:Okay das war eben mein Fehler, die leerzeichen oder keine leerzeichen sind alle richtig gesetzt, allerdings kommt es immer noch zu fehlern und es wird nicht richtig ausgeführt.
Wenn Du uns dumm sterben lassen willst, können wir das auch
-
Savar
- Beiträge: 7174
- Registriert: 30.07.2004 09:28:58
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Berlin
Beitrag
von Savar » 11.11.2005 12:57:33
Poste den entsprechenden Teil mal bitte UND sag was du für Fehler bekommst..
-
Joghurt
- Beiträge: 5244
- Registriert: 30.01.2003 15:27:31
- Wohnort: Hamburg
-
Kontaktdaten:
Beitrag
von Joghurt » 11.11.2005 14:55:26
*Glaskugel hervorhol*
Sie werden in naher Zukunft eine interessante Bekanntschaft machen. Das und, der Fehler liegt in Zeile 3... nein, Moment... 7!
-
snoop_hallo
- Beiträge: 110
- Registriert: 29.03.2005 19:24:45
-
Kontaktdaten:
Beitrag
von snoop_hallo » 12.11.2005 09:05:48
Das Script
Code: Alles auswählen
#!/bin/sh
test=0.69
if [ $test -gt 2.00 ]; then
echo "Richtig"
else
echo "falsch"
fi
Die Fehlermeldung
-
Savar
- Beiträge: 7174
- Registriert: 30.07.2004 09:28:58
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Berlin
Beitrag
von Savar » 12.11.2005 09:12:14
steht doch da, welches Problem das ist... die Bash kann nur Ganzzahlen.. also keine Kommazahlen (bzw. natürlich keine Punktzahlen, da wir ja englische Schreibweisen nutzen müssen)...
-
Cloonix
- Beiträge: 589
- Registriert: 20.11.2004 10:42:24
- Wohnort: München
-
Kontaktdaten:
Beitrag
von Cloonix » 12.11.2005 09:14:29
Du kannst nur Deziamlzahlen ohne Nachkommawerte verwenden.
Außerdem empfiehlt es sich alle Variablen in "" zu setzen.
MfG
-
peschmae
- Beiträge: 4844
- Registriert: 07.01.2003 12:50:33
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: nirgendwo im irgendwo
Beitrag
von peschmae » 12.11.2005 18:06:52
Das Programm "bc" kann sowas.
Code: Alles auswählen
peschmae@sid:~$ echo "1.32 < 3.14" | bc -q
1
peschmae@sid:~$ echo "51.32 < 3.14" | bc -q
0
peschmae@sid:~$ echo "3.14 < 3.14" | bc -q
0
peschmae@sid:~$ echo "3.13 < 3.14" | bc -q
1
Also:
Code: Alles auswählen
Z1="3.14"
Z2="1.27"
if [ $(echo "$Z1 < $Z2" | bc -q) -eq 1 ]; then
echo gut
else
echo pöse
fi
MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy