PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Druckfilter II



ExeCRabLE
12.12.02, 08:08
Hallo zusammen !

Sorry Geronet, war mehr als im Stress... Ein Kollege hat ein Script gebastelt, was zwar als Shellaufruf funktioniert aber nicht als Druckfilter. Das Spoolsystem bemeckert das Script. Als Fehlermeldung kommt, das der "sed" Aufruf falsch sei. Wie kann es sein, das der Sed-Befehl als Shellaufruf funktioniert aber nicht als Druckfilter ? Ich habe den Filter als User lp laufen lassen und es funktioniert anstandslos ?!?

Anbei das Script :



#!/bin/ksh
#
set_suffix() {
f=$1;
zeichen=`sed -n '3p' $f | cut -c2-9` #Auslesen aus der 3 Zeile
case $zeichen in
CODEPAGE) suffix="rdi";;
FORMAT=O) suffix="otf";;
*) suffix="unbekannt";;
esac
}

set_printer() {
f=$1;
set_suffix $f;
case $suffix in
rdi) printer=`sed -n '1p' $f | gawk '{print $9}'`;; #Liest den Druckernamen aus
otf) printer=`egrep "*PJPRINTER" $f | gawk -F'=' '{print $2}'`;; #Liest den Druckernamen
unbekannt) printer="unbekannt";;
esac
}

set_server() {
f=$1;
table="/usr/local/strs/setup/table/printer.tbl"; #Druckervergleichstabelle
set_printer $f;
server=`egrep $printer $table | gawk '{print $2}'`;
nummer=`egrep $printer $table | gawk '{print $2}' | wc -c`;
}

(
umask 000
f=$1;
set_server $f;
if [ $nummer != "0" ]; then
echo "Datenstrom: $suffix"
echo "Drucker: $printer"
echo "Server: $server"
else
echo "Datenstrom: $suffix"
echo "Drucker: $printer"
echo "Server in die Tabelle $table nicht gefunden!"
fi
)
exit 0;


Das Script vergleicht "nur" den Drucker aus dem Datenstrom mit dem in der Tabelle und schuat nach dem Serverstandort des Druckers.
Mehr sollte es "erst einmal" nicht sein ....

Danke schon einmal im voraus !

cu
Exe