PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : bash: problem mit variablenübergabe an dialog



thenktor
08-04-2004, 10:27
hallo
ich versuche mit dialog ein auswahlmenu zum dateilöschen zu erstellen. aber es will noch nicht laufen. bis jetzt hab ich sowas:

tempfile=`mktemp /tmp/mktgz.XXXXXX`
trap "rm -f $tempfile" 1 2 5 15
echo "Find Files"
FILES=`find $dirs -maxdepth 1 -type f -printf "\"%p\" size=%kK off "`
echo $FILES
read JUNK
dialog --title "Delete Files" --checklist "Select Files" 16 60 8 $FILES 2> $tempfile

die dateinamen stehen alle schön in $FILES mit den anführungszeichen die benötigt werden wenn die dateinamen leerzeichen haben. Hier die Ausgabe des "echo $FILES":

Find Files
"1/dsc01485.jpg" size=204K off "1/dsc01486.jpg" size=196K off "1/dsc01487.jpg" size=256K off "1/dsc01488.jpg" size=256K off "1/dsc01489.jpg" size=276K off "1/dsc01490.jpg" size=236K off "1/dsc01491.jpg" size=220K off "1/dsc01492.jpg" size=240K off "1/dsc01493.jpg" size=304K off "1/dsc01494.jpg" size=124K off "1/dsc01495.jpg" size=196K off "1/dsc01496.jpg" size=268K off "1/dsc01497.jpg" size=268K off "1/dsc01498.jpg" size=272K off "1/dsc01499.jpg" size=140K off "1/dsc01500.jpg" size=168K off "1/dsc01501.jpg" size=184K off "1/dsc01502.jpg" size=256K off "1/dsc01503.jpg" size=264K off "1/dsc01504.jpg" size=180K off "1/dsc01505.jpg" size=188K off "1/dsc01506.jpg" size=308K off "1/dsc01507.jpg" size=272K off "1/dsc01508.jpg" size=320K off "1/dsc01509.jpg" size=164K off "1/dsc01510.jpg" size=252K off "1/dsc01511.jpg" size=196K off "1/dsc01512.jpg" size=284K off "1/dsc01513.jpg" size=180K off

dialog macht dann auch ne schöne liste. allerdings seh ich da die anführungszeichen an den dateinamen. wenn leerzeichen in den namen vorkommen macht dialog gar nichts. kommt nichtmal eine fehlermeldung.

wenn ich die dateinamen direkt übergebe (z.B. so):

dialog --title "Delete Files" --checklist "Select Files" 16 60 8 "1/dsc01485.jpg" size=204K off "1/dsc01486.jpg" size=196K off "1/dsc01487.jpg" size=256K off "1/dsc01488.jpg" size=256K off
seh ich keine anführungszeichen und es funktioniert auch mit leerzeichen.

kann mir das nicht erklären, weiss jemand rat?

danke

P.S. hab das ganze auch schon bei linuxforen.de gepostet aber da weiss anscheinend auch niemand weiter. Jetzt hoff ich mal hier kann mir jemand helfen ;-)

thenktor
26-07-2004, 11:05
ich schieb das mal nach oben... hab nämlich immer noch keine lösung :(

peschmae
29-07-2004, 10:47
So, hab mich endlich überwinden können das Problem anzupacken. Da wär ne Lösung die bei mir geht (glaub ich jedenfalls):


#!/bin/bash
IFS="#"
FILES=`find $dirs -maxdepth 1 -type f -printf "%p#size=%kK#off#"`
dialog --title "Delete Files" --checklist "Select Files" 16 60 8 $FILES


Bedingung: kein # in Dateinamen. Kannst statt # natürlich auch ein anderes Zeichen verwenden.

Was genau bei deiner Lösung - die wies mir scheint gehen sollte - das Problem ist kann ich allerdings auch nicht sagen.

MfG Peschmä