Halloechen, ich habe mir gerade ein Shellskript als Druckerfilter geschrieben. Der Eintrag in der printcap funktioniert auch: pdf-lp|lp5|pdf-lp|pdf lp:\ :lp=/dev/null:\ :sd=/var/spool/lpd/pdf-lp:\ :lf=/var/spool/lpd/pdf-lp/log:\ :af=/var/spool/lpd/pdf-lp/acct:\ :if=/var/spool/lpd/pdf-lp/pdf-filter:\ :mx#0:\ :sh:sf Das Ergebnis des Druckvorgangs soll für jeden User in einem Unterverzeichnis im Homeverzeichnis abgelegt werden. Daher mache ich zunächst eine Abfrage, ob dieses Unterverzeichnis existiert und wenn nicht soll es angelegt werden: if test -d $HOME/pdf; then echo "pdf vorhanden" else mkdir $HOME/pdf fi Leider verweist die Variable $HOME immer auf / , während die Variable $USER immer korrekt den User angibt, der den Job abgeschickt hat. Das Skript wird vom lpd unter der UID des Users aufgerufen. Woran liegt es, daß die Variable $HOME nicht den richtigen Wert hat? Wenn ich diesen Abfrageblock in einem Testskript als User ablaufen lasse funktioniert alles. Vielen Dank im voraus Gruß Peter -- _______________________________________________________________________ Peter Bossy Vorwerk & Sohn GmbH Co. KG Entwicklung & Konstruktion Obere Lichtenplatzer Str. 336 FEM 42287 Wuppertal FON: +49 202 560 355 POB 201964 FAX: +49 202 560 563 42219 Wuppertal mailto:p.bossy@vorwerk-automotive.de http://www.vorwerk-automotive.de ________________________________________________________________________ --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
* Peter Bossy wrote:
ich habe mir gerade ein Shellskript als Druckerfilter geschrieben. [...] Das Ergebnis des Druckvorgangs soll für jeden User in einem Unterverzeichnis im Homeverzeichnis abgelegt werden. Daher mache ich zunächst eine Abfrage, ob dieses Unterverzeichnis existiert und wenn nicht soll es angelegt werden:
if test -d $HOME/pdf; then echo "pdf vorhanden" else mkdir $HOME/pdf fi
Leider verweist die Variable $HOME immer auf / , während die Variable $USER immer korrekt den User angibt, der den Job abgeschickt hat. Das Skript wird vom lpd unter der UID des Users aufgerufen.
Woran liegt es, daß die Variable $HOME nicht den richtigen Wert hat? Wenn ich diesen Abfrageblock in einem Testskript als User ablaufen lasse funktioniert alles.
Kann ich dir auch nicht genau erklären, woran es liegt. Aber wie wär's mit einem workaround um an's Home-Verzeichnis zu kommen? HOMEDIR=$(grep $USER /etc/passwd | cut -d ':' -f 6) Da es nicht dringend wichtg scheint darüber zu informieren, dass das Verzeichnis ${HOMEDIR}/pdf existiert - es wird ja ansonsten ohne Nachfrage angelegt - kannst du die if-Schleife auch weglassen: test -d ${HOMEDIR}/pdf || mkdir ${HOMEDIR}/pdf christian -- Bitte kein CC: bei Antwort an Mailingliste Etikette per Mail: To: mailings-suse@gmx.de Subject: send etikette http://www.ndh.net/home/schult/etikette.html --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
Peter Bossy wrote: :
Das Ergebnis des Druckvorgangs soll für jeden User in einem Unterverzeichnis im Homeverzeichnis abgelegt werden. : Leider verweist die Variable $HOME immer auf / , während die Variable $USER immer korrekt den User angibt, der den Job abgeschickt hat. Das Skript wird vom lpd unter der UID des Users aufgerufen.
Ähnliches Problem hatte ich neulich auch schon (vorgestern oder so). Bei mir hat userhome=`eval echo ~$USER` geholfen. Hardy PS: mach mal Deine Signature netiquette-konform... -- Visit the VSoup homepage at http://home.pages.de/~vsoup/ --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
participants (3)
-
cschult@gmx.de
-
p.bossy@vorwerk-automotive.de
-
rgriech@mardys.de