ich habe folgendes Problem:
ich möchte ein kleines Programm haben, dass:
1. nur startet, wenn ein USB Stick beim booten eingesteckt ist
2. einen ganzen Ordner/einzelne Dateien hierdrin löschen kann
3. am besten einen Testdruck dieser Dateien vornimmt (sind alles Druckerdateien im raw-format, der Dateiname ist nur eine Nummer)
Hierzu habe ich ein Shellscript gebastelt, allerdings läuft das ganze noch nicht ganz rund. Der Stick wird im Moment unter /media/DEVICENAME gemountet, aber ich schaff es nicht darauf zuzugreifen.
Eventuell habt ihr hier ein paar Verbesserungsvorschläge, auch im Punkt 3...
Code: Alles auswählen
#!/bin/bash
if [ -e /dev/sda ];
then
#alle usb sticks/hdds werden mit sda bzw sdb gekennzeichnet, die zahl dahinter bezieht sich auf die partition
echo "ADMIN MODUS"
#schreibt, dass man im admin modus ist
mkdir mountfolder
#der usb stick muss erst eingehängt werden, dies geschieht über einen mount folder
mount /dev/sda1 ./mountfolder
#hier wird der stick eingehängt
echo "Kopieren oder loeschen? (+ oder -)"
read eingabe
#ob loeschen oder kopieren
if [ "$eingabe" == "+" ];
then
echo "Welche Datei soll kopiert werden? (0,*,Zahl)"
read variable #variable wird eingelesen
if [ "$variable" == "0" ]; #falls 0 eingegeben wurde
then
echo "restart"
exit
#programm wird beendet
fi
if [ "$variable" == "*" ];#falls * eingegeben wurde
then
cp -r ./mountfolder/print /tmp/
#kompletter ordner wird kopiert (bestehendes wird überschrieben)
echo "alles kopieren"
exit
fi
if [ "`find /tmp/print -name $variable `" == "" ]
#falls zahl eingegeben wurde, wird geprüft ob es diese datei schon auf dem raspi gibt, wenn ja, true
then
echo "Die Datei ist schon vorhanden oder existiert auf de USB Stick nicht"
else if [ "`find ./mountfolder/print -name $variable `" != "" ]#wenn nicht, wird geprüft, ob sie überhaupt auf dem usb stick ist
then
path=`ls mountfolder/print/*/$variable` #hier wird geschachtelt, um später den ausdruck hinzubiegen
dir=`dirname $path`
druckername=`basename $dir`
cp -r ./mountfolder/print/$druckername/$variable /tmp/print/$druckername/$variable #genau diese datei wird kopiert
fi
fi
fi
if [ "$eingabe" == "-" ];
then
echo "Welche Datei soll geloescht werden? (Zahl oder Ordner)"
read delete
if [ "`find /tmp/print -name $delete `" == "" && -d $dir ]
then
rm -r /tmp/print/$delete
fi
if [ "`find /tmp/print -name $delete `" == "" ]
then
rm /tmp/print/$delete
fi
fi
fi