Hi,
ich habe hier ein einfaches Skript um Downloads von meinem Downloadsserver (Raspberry Pi, nur 100er LAN) auf meinen PC zu kopieren. Das ganze ist eine Endlosschleife und dafür gedacht zu laufen wenn der PC gerade an ist und immer wieder nach aktuellen Downloads auf dem Pi zu suchen. Lass ich meist laufen wenn der Pi etwas herunterlädt und ich z B. längere Videoencodings mit dem PC mache. Das ganze sieht so aus:
1 2 3 4 5 6 7 8 9 10 11 | #!/bin/bash quelle="$(yad --title="Field Optionen" --form --item-separator=, --separator=" " --field="Verzeichnisauswahl:DIR" --button="OK")" ziel="/media/hdd2/Ordner/" while true do for i in "$quelle"/*.rar do cp -n -v "$i" "$ziel" done done |
Bisher war bei Quelle auch ein absoluter Pfad zu ändern, hab ich einfach manuell gemacht und das ganze lief. Jetzt wollte ich die Ordnerauswahl über ein Fenster mit yad umsetzen, hier erstmal testweise nur für den Quellordner. Das läuft aber irgendwie auf Fehler. Wenn ich den Quellordner auswähle kommt im Terminal:
1 | cp: Aufruf von stat für '/autofs/raspberry-pi-usb/pfad/zum/download /*.rar' nicht möglich: Datei oder Verzeichnis nicht gefunden
|
Ein anderes Problem ist das Leerzeichen nach dem Ordnernamen und vor dem /. Ich vermute das liegt an der Option '--separator" "'. Wenn ich diese aber in '--separatur=""' ändere oder weglasse wird das Skript nicht ausgeführt. Es kommt aber auch keine Meldung im Terminal. Lasse ich testweise $quelle mit 'echo $quelle > datei' in eine Datei schreiben, geht alles. Der Pfad steht dann ohne Leerzeichen in der Datei.
Hier komme ich nicht weiter.
EDIT Mit Zenity und der Zeile
1 | quelle="$(zenity --file-selection --directory)" |
hab ich es jetzt hinbekommen. Was jetzt aber bei yad falsch läuft weiß ich nicht.
Bearbeitet von rklm:
Syntaxhighlighting