Ausgaben an Yad weiterreichen

mayflower

Neu angemeldet
Registriert
13 Jan. 2016
Beiträge
32
Hallo,

ich lasse mir wie hier https://ngb.to/threads/36522-Ordner-eines-Pfades-einzeln-anzeigen?p=894665#post894665 beschrieben für eine Datei den gesamten Pfad anzeigen und dann die einzelnen Ordner eine einer extra Zeile ausgeben. Das Ergebnis sieht z.B. so aus:
[src=c]'media'
'mit leerzeichen'[/src]

Die ' lasse ich ergänzen. Hab es hier auch mit " versucht. Ich will ein Fenster mit Yad erstellen das mit jeden einzelnen der Ordner als Auswahlmöglichkeit angibt. Der Yad-Aufruf sieht so aus:

[src=c]yad --height=400 --list --separator="" --column="Dateinamen auswählen" $d[/src]

wobei $d die Variable mit o.g. Inhalt ist. Problem: Yad erstellt an jedem Leerzeichen eine neue Zeile und daher ein neues Auswahlmenü und die ' bzw. " werden einfach mit übernommen, also als Text dargestellt.

Komisch ist, dass wenn ich im Yad-Aufruf statt einer Variable manuell Text eingeben genau in gleicher Form Yad alles richtig macht: ' bzw. " werden nicht mit angezeigt und Leerzeichen ignoriert.
 
@mayflower: Klar. Du übergibst die Variable ohne Anführungszeichen, damit wird sie in verschiedene Parameter aufgespalten. So sollte es laufen:
[src=bash]yad --height=400 --list --separator="" --column="Dateinamen auswählen" "$d"[/src]

Ach, und die Anführungszeichen raus aus der Quelldatei, die machen die Sache nur schlimmer. Und dein Separator sollte eigentlich \n, also Newline sein.
 
  • Thread Starter Thread Starter
  • #3
Das geht so leider nicht. Wenn ich die Variable in Yad in Anführungszeichen setzen interpretiert er ALLES als einen Eintrag, das heißt ich habe den gesamten Pfad als mehrzeilige Auswahlmöglichkeit.

Ohne Anführungszeichen in der Quelldatei interpretiert er die Leerzeichen als Separator und macht aus Ordnern mit Leerzeichen mehrere Einträge.

Das mit dem Separator ändern am Verhalten gar nichts.

Ich hab die Vorschläge auch in Kombination versucht, immer das gleiche.
 
  • Thread Starter Thread Starter
  • #5
Ich hab es jetzt so gelöst:

yad --width=400 --title="" \
--form \
--field="Dateiname":CB \
"$a"

Das Script hab ich mir aber auch nur ergoogelt, also ich nach einer Alternativlösung mit Zenity gesucht habe.

Die Variable lasse ich in der Form

string1!string2!string3

importieren. ! scheint der Standardseparator zu sein.
 
Zurück
Oben