• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Shellscript: Speicherort und Name angeben

abraham

Newbie
Hallo Zusammen

Ich habe irgendwo in diesem Forum mal ein Script gefunden, mit dem man mehrere Seiten einscannen kann, und diese direkt in ein PDF umgewandelt abspeichern kann:

Code:
#! /bin/bash
clear

#Scanner bestimmen bei Verwendung von libusb
#Wenn nicht libusb verwendet wird einfach
$SCANNER="/dev/usbscanner"

SCANNERMESSAGE=$(scanimage -L)
START=$(expr index "$SCANNERMESSAGE" \`)
START=$[$START + 1]
ENDE=$(expr index "$SCANNERMESSAGE" \')
INTERVALL=$[$ENDE - $START]
SCANNER=$(expr substr "$SCANNERMESSAGE" $START $INTERVALL)

echo "Mehrere DIN A4 Dokumente in ein PDF scannen"
echo "*******************************************"
echo "Scanner ist $SCANNER"
echo

echo "Aufl�ungen:"
echo "   [1]  50 ppi"
echo "   [2] 100 ppi"
echo "   [3] 150 ppi"
echo "   [4] 300 ppi"
echo
echo -n "Bitte Scanaufl�ung ausw�len: "
read AUSWAHL_PPI

case $AUSWAHL_PPI in
 1) RES=50;;
 2) RES=100;;
 3) RES=150;;
 4) RES=300;;
 *) RES=100;;
esac

echo "Scanaufl�ung wird auf $RES ppi gesetzt"
echo

COUNT=1

echo -n "$COUNT. Seite einlegen und [beliebige Taste] fr Scannen oder [b] fr Beenden: "
read EINGABE

if [ "$EINGABE" = "b" ]; then
 exit 0
fi

while [ "$EINGABE" != "b" ]
do
 POSTFIX=$(printf "%04d" $COUNT)
 echo "Scanne scan2pdf$POSTFIX.pnm..."

 scanimage --device=$SCANNER --resolution=$RES -l 0mm -t 0mm -x210mm -y297mm > $HOME/scan2pdf$POSTFIX.pnm
 COUNT=$[$COUNT + 1]
 echo -n "$COUNT. Seite einlegen und [beliebige Taste] fr Scannen oder [b] fr Beenden: "
 read EINGABE
done


echo "Erzeuge PDF Dokument..."

mogrify -format jpeg $HOME/scan2pdf*.pnm
convert -adjoin $HOME/scan2pdf*.jpeg $HOME/scan2pdf_doc.pdf
echo "Aufr�men..."
rm $HOME/scan2pdf*.pnm
rm $HOME/scan2pdf*.jpeg

nun würde ich das Script gerne so anpassen, dass es nach dem Speicherort und nach den Dateiname fragt.
Nun aber, wie mache ich das?

gruss

abraham
 

nobbiew

Hacker
#! /bin/bash
clear

#Scanner bestimmen bei Verwendung von libusb
#Wenn nicht libusb verwendet wird einfach
$SCANNER="/dev/usbscanner"

SCANNERMESSAGE=$(scanimage -L)
START=$(expr index "$SCANNERMESSAGE" \`)
START=$[$START + 1]
ENDE=$(expr index "$SCANNERMESSAGE" \')
INTERVALL=$[$ENDE - $START]
SCANNER=$(expr substr "$SCANNERMESSAGE" $START $INTERVALL)

echo "Mehrere DIN A4 Dokumente in ein PDF scannen"
echo "*******************************************"
echo "Scanner ist $SCANNER"
echo

echo "Aufl�ungen:"
echo " [1] 50 ppi"
echo " [2] 100 ppi"
echo " [3] 150 ppi"
echo " [4] 300 ppi"
echo
echo -n "Bitte Scanaufl�ung ausw�len: "
read AUSWAHL_PPI

case $AUSWAHL_PPI in
1) RES=50;;
2) RES=100;;
3) RES=150;;
4) RES=300;;
*) RES=100;;
esac

echo "Scanaufl�ung wird auf $RES ppi gesetzt"
echo

COUNT=1

echo -n "$COUNT. Seite einlegen und [beliebige Taste] fr Scannen oder fr Beenden: "
read EINGABE

if [ "$EINGABE" = "b" ]; then
exit 0
fi

while [ "$EINGABE" != "b" ]
do
POSTFIX=$(printf "%04d" $COUNT)
echo "Scanne scan2pdf$POSTFIX.pnm..."

scanimage --device=$SCANNER --resolution=$RES -l 0mm -t 0mm -x210mm -y297mm > $HOME/scan2pdf$POSTFIX.pnm
COUNT=$[$COUNT + 1]
echo -n "$COUNT. Seite einlegen und [beliebige Taste] fr Scannen oder fr Beenden: "
read EINGABE
done

echo -n "Name des PDF-Dokuments (ohne .pdf): "
read DOCNAME



echo "Erzeuge PDF Dokument..."



mogrify -format jpeg $HOME/scan2pdf*.pnm
convert -adjoin $HOME/scan2pdf*.jpeg "${DOCNAME}.pdf"
echo "Aufr�men..."
rm $HOME/scan2pdf*.pnm
rm $HOME/scan2pdf*.jpeg


sollte weiterhelfen. Hab´s aber noch nicht getestet.
Den Dokumentennamen kannst du absolut o. relativ angeben. Ohne Pfadangabe schreibt er ins aktuelle Verzeichnis

EDIT:
Hab die DOCNAME in " gestellt. Damit auch leerzeichen zulässig sind
 
OP
A

abraham

Newbie
DANKE!
Das funktioniert einwandfrei, so komme ich meinem Traum vom Papierlosem Büro ein wenig näher :D
 
Oben