> -----Original Message-----
> From: Michael Tuschik [mailto:[EMAIL PROTECTED] 
> Sent: Wednesday, April 02, 2003 9:35 AM
> To: [EMAIL PROTECTED]
> Subject: Re: bashscript und inetd
> 
> 
> 
> > -----Ursprüngliche Nachricht-----
> > Von: Andre Frimberger [mailto:[EMAIL PROTECTED]
> > Gesendet: Dienstag, 1. April 2003 22:44
> >
> >
> > mach ich ein echo $username, geht alles...
> > das verrückt dadran ist:
> > USERNAME="HALLLLLOOOOO";
> > PASSWORD="TEEEEEEESSSST";
> > echo $MOUNT_PATH -t smbfs -o 
> username=$USERNAME,password=$PASSWORD -o ro
> > -o debug=0 //$WINDOWS_COMPUTERNAME/$WINDOWS_SHARE $LOCAL_PATH;
> > funktioniert.
> > Aber kommen $username und $password von read, werden teile
> > abgeschnitten ?!?
> >
> > ... ist irgendwie ziemlich wirr!
> > (wehe es behauptet nochmal jemand Computer würden logisch
> > sein ;-) )
> 
Hallo Michael,

> 
> Wenn man weiß, woran es liegt, ist auch wieder alles ganz logisch ;-)
... das ist wohl meistens so :)

> Wenn du das Script über inetd startest, kommen die Eingaben 
> ja über TCP.
ja, das is klar

> Und hier werden für Zeilenumbrüche 0x0D 0x0A verwendet und nicht, wie
ahh... (und ein Lichtlein ging auf ;) )

> unter UNIX üblich, nur 0x0A. Da die bash davon nix weiß, 
> ließt sie beim
> read eben solange, bis ein 0x0A kommt, und packt das 0x0D mit in deine
> Variablen. Und da 0x0D ja Carriage Return heißt, fährt er 
> beim echo den
> Cursor immer schön an den Anfang der Zeile zurück und 
> überschreibt dort
> das bisher ausgegebene.
erklärt alles... :)

> Hänge doch mal ein "| hexdump -C" an dein echo hinten dran, 
> dann siehst
> du, was ich meine.
jo, stimmt... ich glaub da hätt ich in 100 Jahren noch gesucht *g*
zumal ich immer den Fehler in meinem Script vermutet habe.

> 
> Eine schnelle Lösung mit bash-Boardmitteln wäre, die beiden Variablen
> nach dem read um das letzte Zeichen zu beschneiden:
> 
> username=${username:0:${#username}-1}
> password=${password:0:${#password}-1}


> 
> Leider funktioniert das dann nicht mehr im Terminal sondern nur noch
> per inetd. Aber es gibt sicher noch viele andere Wege, das Problem
> zu beseitigen/zu umgehen.
ja, man kann ja in der inetd dem Script noch einen Parameter mit
übergeben.
Die frägt man dann einfach ab und je nach dem beschneidet man die
Variable.


Gruss und Danke :)

André Frimberger


--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)

Antwort per Email an