folgende Schwierigkeit: Meine Kamera liefert */JPG. Ich möchte ein script erstellen, welches per Starter/Menueintrag gestarted wird,ein Fenster ploppt auf, ich gebe das zu bearbeitende Verzeichnis ein, alle darin befindlichen *:JPG werden in *.jpg umbenannt, anschließend deren Rechte auf 644 gesetzt (udev vergibt an *.XXX 600 bei'm Kopieren). Dabei gibt es ein Problem mit ~
Code: Alles auswählen
#!/bin/bash
kdialog --inputbox Pfad >/tmp/OUTPUT
VAR= ;
VAR="$(cat /tmp/OUTPUT)" ;
cd $VAR ;
if find *.JPG >&/dev/null
then
mmv "*.JPG" "#1.jpg"
chmod 644 *.jpg
kdialog --msgbox erledigt
else
kdialog --msgbox "Keine *.JPG zum Umwandeln gefunden"
fi ;
exit 0
/home/uwe/Pic
in die inputbox eingegeben wird. Bei der Schreibweise
~/Pic
versagt das script.
Mit
Code: Alles auswählen
#!/bin/bash
kdialog --inputbox Pfad >/tmp/OUTPUT
cat /tmp/OUTPUT | sed 's/~/\/home\/uwe/' >/tmp/OUTPUTB ;
VAR= ;
VAR="$(cat /tmp/OUTPUTB)" ;
cd $VAR ;
if find *.JPG >&/dev/null
then
mmv "*.JPG" "#1.jpg"
chmod 644 *.jpg
kdialog --msgbox erledigt
else
kdialog --msgbox "Keine *.JPG zum Umwandeln gefunden"
fi ;
exit 0
~/Pic
, das script müßte aber für jeden User angepaßt werden.
Frage: Gibt es eine Möglichkeit, ~ durch Auslesen von $HOME zu ersetzen? Mit sed habe ich das bisher nicht hinbekommen:
Code: Alles auswählen
uwe@debian-uwe:~$ kdialog --inputbox Pfad >/tmp/OUTPUT
uwe@debian-uwe:~$ cat /tmp/OUTPUT
~/Pic
uwe@debian-uwe:~$ cat /tmp/OUTPUT | sed 's/~/"$HOME"/' >/tmp/OUTPUTB
uwe@debian-uwe:~$ cat /tmp/OUTPUTB
"$HOME"/Pic
uwe@debian-uwe:~$ cat /tmp/OUTPUT | sed 's/~/$HOME/' >/tmp/OUTPUTB
uwe@debian-uwe:~$ cat /tmp/OUTPUTB
$HOME/Pic
Uwe Pr.