PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : read liest nicht :-(



claudius
21-11-2003, 15:30
... was stimmt nicht?

kdialog --checklist starten ml mldonkey 0 mo mozilla 0 ni nichts 0
read sta
case $sta in
"ml") /home/cl/mldonkey/mlstarter.sh;;
"mo") mozilla;;
"ni") exit 0;;
#"ml" "mo") su cl ; /home/cl/mldonkey/mlstarter.sh ; mozilla;;
#"mo" "ml") su cl ; /home/cl/mldonkey/mlstarter.sh ; mozilla;;
esac

... ich weiß nur dass der Fehler an folgender stelle liegt:
kdialog --checklist starten ml mldonkey 0 mo mozilla 0 ni nichts 0
read sta
read liest nicht von kdialog; s' ist n' totaler Anfängerfehler, ich weiß ... ich komme aber einfach nicht dahinter.
Vielen Dank! :-)

fork
21-11-2003, 16:59
Probier's mal so:
sta=$(kdialog --checklist starten... 50 10 ml mldonkey mldonkey em emule emule 2 2>&1)

claudius
21-11-2003, 17:22
Danke fork, jetzt tut der Teil ... :-)
... aber im 2. Teil stimmt auch was' nicht ... was mach' ich falsch? So hab' ich's jetzt mal umgeändert:

#! /bin/sh
sta=$(kdialog --checklist starten... ko konqueror 0 mo mozilla 0 ni nichts 0)
case $sta in
"ko" ) konqueror;;
"mo" ) mozilla;;
"ni" ) exit 0;;
esac


ps: dumme Frage: wofür war eigendlich des' "2 2>&1" im kdialog da?
Vielen Dank! :-)

RapidMax
21-11-2003, 19:25
Original geschrieben von claudius
ps: dumme Frage: wofür war eigendlich des' "2 2>&1" im kdialog da?
2>&1 verknüft den stderr (Standard-Error, Filedescriptor 2) mit stdout (Standard-Out, Filedescriptor 1). kdialog (und dialog, und xdialog) schreiben die Ausgabe auch in den stderr. "$()" (das gleiche wie die Backticks "``", nur nicht portabel) liest aber nur von stdin, in diesemfall nur von stdout, darum muss es verknüpft werden.

Alle Klarheiten beseitigt? ;)

Gruss, Andy

claudius
21-11-2003, 19:50
danke ... :-)
leider geht der script immer noch nicht: genaueres hier (http://www.linuxforen.de/forums/showthread.php?s=&postid=653485#post653485)
Wie erreiche ich, dass case auch die Anführungszeichen von kdialog sieht, bzw. anders herum?
ps: auch wenn ich 2>&1 wie folgende Zeile hinzufüge, will er immer noch nicht:
sta=$(kdialog --checklist starten... ko konqueror 0 mo mozilla 0 ni nichts 0 2 2>&1 )

Was ist diesmal falsch?
Vielen Dank für eure Hilfe! :-)