Telnet IF

nowo

Neuer User
Mitglied seit
10 Feb 2006
Beiträge
102
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich versuche schon seit einiger Zeit ne IF-Bedingung zu realisieren.

Zuerst weise ich ner variablen den wert 1 zu:
variable=1

und danach will ich diesen wert über if abfragen:

if [variable=="1"]
then echo test ok!!!
else echo test falsch!!!
fi


Leider bekomme ich immer folgende Meldung:
-sh: 1: not found
test falsch!!!

... woran liegts???
 
Vielen Dank, habe mal folgendes Beispiel ausprobiert:

if [ 0 ]
then
echo "wahr"
else
echo "falsch"
fi

Eigtl. sollte nun doch "falsch" ausgegeben werden?
Es wird aber "wahr" ausgegeben, auch wenn ich anstatt 0 eine 1 eingebe...

Hat da BusyBox nen Fehler, oder hab ich nen Denkfehler???


Edit:
Habs nun hinbekommen, indem ich extra auf Gleichheit von 0 überprüfe:

variable=1
if [ $variable != 0 ]
then
echo "true"
else
echo "false"
fi

... komisch nur, dass man dies extra vorgeben muss, da die meisten Programmiersprachen automatisch wie folgt überprüfen:
0 -> falsch
sonst: wahr
 
Zuletzt bearbeitet:

"komisch" ist nur, daß Du Dir nicht die Mühe machst, nachzulesen, was der Befehl tut. Sonst wüßtest Du auch, warum dieses Ergebnis kommt.
Wenn es Dir lieber ist, es durch Versuch und Irrtum herauszufinden, dann ist das Dein Sache, aber warum willst Du uns das alles mitteilen?
 
Warum ich euch das mitteilen möchte? Ganz einfach: Scheinbar unterscheidet sich BusyBoy zumindest in diesem Punkt von den anderen/geläufigeren Programmiersprachen.

Wer mit BusyBox anfängt wird hier wohl keine Probleme bekommen.
Wer allerdings seine Erfahrungen anderer Programmiersprachen hier einfließen lassen möchte, wird auch bei der Stelle landen, welche mir ein wenig suspekt erschien, was mich dann letztendlich zu der Hilfe hier im Forum veranlasste.

Da sicherlich auch andere auf dieses Problem stoßen werden, habe dies als Anlass genommen, die Ursache zu beschreiben, was meiner Meinung nach auch jeder so machen sollte.

Wenn deine Meinung anders sein sollte, steht es dir frei, solche Beiträge gerne zu überfliegen.
 
Hallo,

"busybox" ist keine Programmiersprache. busybox ist ein Programm, in dem die Funktionalität vieler Tools zusammengefasst ist.

Was du versuchst, ist shell scripting. Das ist was anderes, als Programmieren (und hat erst mal gar nichts mit busybox zu tun). Und wie es geht, steht in dem Link, den ich oben gepostet habe.
 
Wie Frank schon geschrieben hat, hat das mit Busybox nichts zu tun, sondern mit der Shell, genauer gesagt mit der Bourne Shell und dazu kompatiblen Shells.

Anscheinend weißt Du auch nicht, was Busybox wirklich ist. Busybox ist eine Sammlung von vielen häufig genutzten Programmen mit zum Teil reduzierter Funktionalität, um Platz zu sparen. Busybox bietet zu diesem Zweck insgesamt drei Shells mit mehr oder weniger Funktionsumfang an. Die Grundfunktionen jedoch sind in jeder dieser Shells enthalten.

Speziell ist das, was Du herausgefunden hast, das dokumentierte Verhalten, das man von jeder Shell erwarten kann, von der kleinsten Shell der Busybox über die Standard POSIX Shell bis hin zu bash.

Natürlich ist es gut möglich, daß es auch noch andere gibt, die sich nicht die Mühe machen, die Dokumentation zu lesen, so daß diese Information für sie nützlich wäre. Naturgemäß werden diese auch gar nicht erst versuchen, diesen Beitrag zu finden. Aber selbst, wenn es jemand versuchen wollte, ist der Titel "Telnet IF" nicht dazu geeignet, diesen Thread als relevant zum Thema zu erkennen. Denn was hat dieser Thread mit Telnet zu tun? Gar nichts. Du wirst jetzt vielleicht sagen, daß Du Telnet verwendest, um auf die Box zuzugreifen. Ich aber verwendet nicht Telnet, sondern ein KAT5-Kabel und hätte somit eher nach "KAT5 IF" gesucht :).

Das einzig hilfreiche zu dem Thema ist der Link von Frank, aber Du hast ihn nicht gelesen und statt dessen herumprobiert bis Du etwas hattest, was zum gewünschten Ergebnis geführt hat, aber Du hast nicht verstanden, warum es so ist.

Ist Dir zum Beispiel klar, was genau es mit den Zeichen '[' und ']' aus sich hat? Ich habe nicht den Eindruck. Wenn Du vorhast, häufiger etwas mit der Shell zu machen, solltest Du das mal nachlesen.

Und zu deiner Bemerkung, daß die meisten Programmiersprachen 0 als falsch und den Rest als wahr betrachten, ich vermute mal, daß Du von den meisten Programmiersprachen noch nicht einmal etwas gehört hast.
 
Vielen Dank für die Infos.

Wie ihr wohl schon bemerkt habt, habe ich tatsächlich mit BusyBox noch recht wenig Ahnung, weshalb ich mich an dieses Forum gewendet habe.

Ich kenne mich mit einigen Programmiersprachen aus, in denen natürlich auch IF-Abfragen vorkommen. Da sich BusyBox (bzw. deren shell scripting) aber von den anderen Sprachen speziell bei der IF-Bedingung unterscheidet, stand ich aufm Schlauch...

Zum Titel: klar verwendet jeder andere Möglichkeiten, um sich auf die Box zu verbinden.
Die Anfänger werden hierfür aber Telnet verwenden. Wie man dann letztendlich auf die Box gelangt (ob per LAN, WLAN, etc.) ist hierbei wohl jedoch egal.

Dennoch vielen Dank, dass Ihr euch mit meiner Frage befasst habt und mir somit auch zum Ziel geholfen habt.
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
246,295
Beiträge
2,249,594
Mitglieder
373,893
Neuestes Mitglied
Kukkatto
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.