Hallo nochmal,
nach einer Akzeptanzanalyse musste ich feststellen, das Leerzeichen im Dateipfad Probleme bereiten. Mein Skript teil:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | prompt="Please select a file:" options=( $(find . /media -iname '*.iso' -print0 | xargs -0) ) PS3="$prompt " select opt in "${options[@]}" "Neue Suche." ; do if (( REPLY == 1 + ${#options[@]} )) ; then break elif (( REPLY > 0 && REPLY <= ${#options[@]} )) ; then echo "You picked $opt which is file $REPLY" iso=$opt break else echo "Invalid option. Try another one." fi done |
Wie man erkennen kann, suche ich alle iso- Dateien und stelle eine Auswahl der gefundenen Dateien zur Auswahl. Das Problem ist wenn eine Datei ein Leerzeichen im Pfad hat, erscheinen zwei Optionen pro Datei in der Liste. Bei zwei Dateien "eine_Datei.iso" und "mit Leerzeichen.iso" sieht die Auswahl dann so aus:
1) ./Desktop/eine_Datei.iso 3) Leerzeichen.iso 2) ./Desktop/mit 4) Neue Suche
Ich habe versucht bei der Variable options Anführungszeichen einzubauen, aber das führte nicht zum Erfolg.
Wahrscheinlich sind Leerzeichen die Trennzeichen in der options, obwohl bei xargs -0
mit NULL getrennt wird? xargs (Abschnitt „Optionen“)
Ich möchte mit der ISO dann weiterarbeiten.
(Die Dateien kann ich nicht umbenennen (read only) und zur Not setzte ich halt Softlinks.)
LG Jake