Lesen UND Schreiben in einen Kommando (tcl)
Hallo zusammen, Vielleicht hat jemand von Euch schon fuer folgendes Problem eine Loesung und kann mir einen Code Schnipsel zuschicken: Ich starte in einem Tc/Tcl Programm ein externes UNIX Kommando und lese dessen Output. In einigen Faellen will das Kommando nun was von mir wissen. Wie schaffe ich's nun, dass ich Lesen UND Schreiben kann ?? Aktuell sieht der Code im groben so aus: set Cmd "cdrdao read-toc --device $dev --fast-toc $cddbArgs \ --driver $driver $tocFile" if [catch {open "|sh -c \"$Cmd 2>&1 \; exit 0\""} inputID] { puts "FEHLER" } else { fileevent $inputID readable {DoFileEvent $titel UpdateMsgAreaLabel} } ------ In der Funktion 'DoFileEven{}' ist nun ein grosses case enthalten, das den von 'cdrdao' gelieferten Output verarbeitet. Ich habe schon mit den access (r+, w+, a+) beim open-Kommando rumprobiert, aber ein puts $inputID "irgendwas" funktioniert nicht. Wie muss ich es anstellen, dass ich sowohl lesen als auch schreiben kann. Danke fuer Tipps !! Werner Franke
On Thu, 14 Nov 2002, Werner Franke wrote:
Ich starte in einem Tc/Tcl Programm ein externes UNIX Kommando und lese dessen Output. In einigen Faellen will das Kommando nun was von mir wissen. Wie schaffe ich's nun, dass ich Lesen UND Schreiben kann ??
die Tcl-Erweiterung expect ist dein Freund. Einfach statt tclsh expect als Interpreter verwenden. Was man dann machen kann steht wie immer in man expect Achim
Hallo Achim, Hallo Liste, Achim Hoffmann wrote:
On Thu, 14 Nov 2002, Werner Franke wrote:
Ich starte in einem Tc/Tcl Programm ein externes UNIX Kommando und lese dessen Output. In einigen Faellen will das Kommando nun was von mir wissen. Wie schaffe ich's nun, dass ich Lesen UND Schreiben kann ??
die Tcl-Erweiterung expect ist dein Freund. Einfach statt tclsh expect als Interpreter verwenden. Was man dann machen kann steht wie immer in man expect
Haette vielleicht noch dazuschreiben sollen, dass das Tk/Tcl Programm ein umfangreiches CD Brennprogramm mit ca 20 000 Zeilen ist und ich 'bltwish24' verwende. http://home.arcor.de/wfranke/tkburn.html Aber wenn's gar nicht anders geht, muss ich eventuell einen Teil mit 'expect' realisieren. Eine andere Moeglichkeit waere mir jedoch lieber :-) Gruss Werner
On Thu, 14 Nov 2002, Werner Franke wrote:
Hallo Achim, Hallo Liste,
Achim Hoffmann wrote:
On Thu, 14 Nov 2002, Werner Franke wrote:
Ich starte in einem Tc/Tcl Programm ein externes UNIX Kommando und lese dessen Output. In einigen Faellen will das Kommando nun was von mir wissen. Wie schaffe ich's nun, dass ich Lesen UND Schreiben kann ??
die Tcl-Erweiterung expect ist dein Freund. Einfach statt tclsh expect als Interpreter verwenden. Was man dann machen kann steht wie immer in man expect
Haette vielleicht noch dazuschreiben sollen, dass das Tk/Tcl Programm ein umfangreiches CD Brennprogramm mit ca 20 000 Zeilen ist und ich 'bltwish24' verwende.
expect kann man auch einfach wie jedes andere Tcl/Tk Modul dazuladen. Du brauchst also nicht expect statt bltwish24 verwenden. (passende Syntax habe ich grade nicht) Achim
participants (2)
-
Achim Hoffmann
-
Werner Franke