ubuntuusers.de

bash: Befehlsausgabe in Variable schreiben

Status: Ungelöst | Ubuntu-Version: Ubuntu 24.04 (Noble Numbat)
Antworten |

banause

Anmeldungsdatum:
17. November 2009

Beiträge: 321

ich möchte das Ergebnis eines CLI Befehls in eine Variable schreiben.

1
2
FILENAME=$1
FILENAMEBASE=$(basename $FILENAME .tif)

geht.

Ich muss die Auflösung eines gescannten Dokuments ermitteln. Das mache ich mit identify (ImageMagick). Von der Datei soll nur das erste Frame ausgelesen werden. Daher der Zusatz "'[0]'" am Dateinamen.

Was ich auf der Kommandozeile schaffe,

1
2
3
4
F=Datei.tif
DPI=$(identify -units PixelsPerInch -format '%[fx:int(resolution.x)]\n' $F'[0]')
echo $DPI
600

bekomme ich innerhalb eines bash-Scripts nicht hin.

1
2
DPI=$(identify -units PixelsPerInch -format '%[fx:int(resolution.x)]\n' $1'[0]')
echo $DPI

DPI bleibt leer.

Könnte mir bitte jemand einen Tipp geben?

Danke und Gruß,

banause

Ruth-Wies

Avatar von Ruth-Wies

Anmeldungsdatum:
12. April 2023

Beiträge: 913

Wohnort: im Exil ;(

banause schrieb:

1
FILENAMEBASE=$(basename $FILENAME .tif)

Was soll dieses „ .tif“ bewirken? Da es nichts bewirkt, kannst du es auch weg lassen.

Könnte mir bitte jemand einen Tipp geben?

So rein theoretisch – ohne konkrete Ein- und Ausgabe? Fang mal mit quoting an ($1"$1").

Ansonsten vor den Aufruf des Skripts ein „set -x; “ einfügen. Dann siehst du die Details bei der Ausführung.

Dakuan

Avatar von Dakuan

Anmeldungsdatum:
2. November 2004

Beiträge: 6572

Wohnort: Hamburg

Lass doch das Leerzeichen weg.

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4773

Wohnort: Berlin

@Ruth-Wies: Was meinst Du mit das das .tif-Argument nix bewirkt? Das entfernt die Endung .tif:

$ basename /tmp/test.tif .tif
test
$ basename /tmp/test.tif 
test.tif

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4773

Wohnort: Berlin

@banause: Wenn ich das einfach 1:1 in eine Datei kopiere und die She-Bang-Zeile davor setze, dann funktioniert das bei mir problemlos:

./test.sh multipage.tif
72

Ich würde trotzdem die Variablenersetzungen quoten.

1
2
3
#!/bin/sh
DPI=$(identify -units PixelsPerInch -format '%[fx:int(resolution.x)]\n' "$1[0]")
echo "$DPI"

shiro Team-Icon

Supporter

Anmeldungsdatum:
20. Juli 2020

Beiträge: 1449

Lass doch das Leerzeichen weg.

Nein, der Hinweis von Ruth-Wies mit dem Quoting ist schon korrekt. Beispiel:

$ set 'Scan grau.tif'; echo $1
Scan grau.tif
$ DPI=$(identify -units PixelsPerInch -format '%[fx:int(resolution.x)]\n' "$1"'[0]')
$ echo $DPI
300
$ 

Warum aber muss es der "identify" Befehl sein? Ich bekomme bei diesem bei etlichen .tif Dateien Fehlermeldungen wie "Unknown field with tag".

Ich verwende hier lieber den "mediainfo" Befehl z.B.

$ DPI=$(mediainfo "$1" | grep -Po '^Density +: \K([0-9]+)')
300
$ 

Ruth-Wies

Avatar von Ruth-Wies

Anmeldungsdatum:
12. April 2023

Beiträge: 913

Wohnort: im Exil ;(

Marc_BlackJack_Rintsch schrieb:

@Ruth-Wies: Was meinst Du mit das das .tif-Argument nix bewirkt?

Äh, ja! Zu früh am Morgähn, Nacht zu kurz. Ich hatte es zu kurz angetestet mit

FILENAME="pfad/zu/datei.ext"
FILENAMEBASE=$(basename $FILENAME .tif)

😲 Asche auf mein Haupt.

banause

(Themenstarter)

Anmeldungsdatum:
17. November 2009

Beiträge: 321

Ich habe folgende Ergebnisse bekommen:

Hier mein Test-script bashtests.sh:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#! /bin/bash
cd /mnt/daten/scanner/raw
F="NetScanner_026221.tif"
DPI1=`identify -units PixelsPerInch -format '%[fx:int(resolution.x)]\n' $F'[0]'`
DPI2=$(identify -units PixelsPerInch -format '%[fx:int(resolution.x)]\n' $F'[0]')
DPI3=`identify -units PixelsPerInch -format '%[fx:int(resolution.x)]\n' "$F[0]"`
DPI4=$(identify -units PixelsPerInch -format '%[fx:int(resolution.x)]\n' "$F"'[0]')
echo "DPI1: "$DPI1
echo "DPI2: "$DPI2
echo "DPI3: "$DPI3
echo "DPI4: "$DPI4

Auf meinem "Programmier-Rechner (Ubuntu 24.04) bekomme ich das hier:

1
2
3
4
5
6
banause@ws-ub-10:/mnt/hobby/Computer/Programmierung/linux$ ./bashtests.sh
DPI1: 600
DPI2: 600
DPI3: 600
DPI4: 600
banause@ws-ub-10:/mnt/hobby/Computer/Programmierung/linux$ 

Das liefert mir der "Produktiv"-Rechner (OpenSuse Leap 16.0):

1
2
3
4
5
6
fileserver5:/home/hobby/Computer/Programmierung/linux # ./bashtests.sh
DPI1: 600
DPI2: 600
DPI3: 600
DPI4: 600
fileserver5:/home/hobby/Computer/Programmierung/linux # 

Das funktioniert also auf beiden Systemen wie erwartet.

Wenn ich aber die vier Versionen des Befehls in das eigentliche Skript eintrage, klappt's nicht mehr:

Das ist das Skript (Teil davon):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/bin/bash
#
# psf.sh
# process scanned files (TIFF format)
#
# shell skript, um die vom Netzwerkscanner angelegten Dateien weiterzuverarbeiten
# der Scanner legt die Dateien als user 'scanner' unter /home/daten/scanner/raw ab.
#
#   schnipp schnapp
#
# ---------------------------------------------------------------------------------
# Änderungsdatum
# VERSION="05.09.2017"
# pdftk wird nicht mehr offiziell unterstuetzt. 
## pdfunite als Ersatz verwendet.
## Fehlerbehandlung (E-Mail im Fehlerfall) eingebaut
VERSION="12.10.2023"

# Dateiname der vom Scanner erzeugten Datei 
FILENAME=$1

# Namensbasis (ohne Endung)
FILENAMEBASE=$(basename $FILENAME .tif)

# Scanner-Auflösung
DPI1=`identify -units PixelsPerInch -format '%[fx:int(resolution.x)]\n' $1'[0]'`
DPI2=$( identify -units PixelsPerInch -format '%[fx:int(resolution.x)]\n' $1'[0]' )
DPI3=$( identify -units PixelsPerInch -format '%[fx:int(resolution.x)]\n' "$1[0]" )
DPI4=`identify -units PixelsPerInch -format '%[fx:int(resolution.x)]\n' "$1[0]"`
DPI5=$(identify -units PixelsPerInch -format '%[fx:int(resolution.x)]\n' "$1"'[0]')

# temporäres Arbeitsverzeichnis
TEMPPATH="/home/daten/scanner/temp"

# Pfad unter dem die Logs abgelegt werden
LOGPATH="/home/daten/scanner/log"

# Logfile setzen
LOGFILE="$LOGPATH/$FILENAMEBASE.log"

# Arbeitsverzeichnis für ImageMagick-Tools setzen. Das Verzeichnis muss sehr viel freien Platz bieten,
# da eine Seite rund 280MB Speicherplatz benötigt
MAGICK_TMP="/home/daten/scanner/magick_tmp"
export MAGICK_TMPDIR=$MAGICK_TMP 2> $LOGFILE
env | grep MAGICK 2>> $LOGFILE

echo `date +%Y.%m.%d" "%H:%M:%S` "[psf.sh] Script: fileserver5: /home/daten/_Computersystem/fileserver5/scripts/psf.sh" >> $LOGFILE
echo `date +%Y.%m.%d" "%H:%M:%S` "[psf.sh] Version: $VERSION --------------------" >> $LOGFILE
echo `date +%Y.%m.%d" "%H:%M:%S` "[psf.sh] " >> $LOGFILE
echo `date +%Y.%m.%d" "%H:%M:%S` "[psf.sh] --- Start ------------------------------" >> $LOGFILE
echo `date +%Y.%m.%d" "%H:%M:%S` "[psf.sh] FILENAME      = $1" >> $LOGFILE
echo `date +%Y.%m.%d" "%H:%M:%S` "[psf.sh] FILENAMEBASE  = $FILENAMEBASE" >> $LOGFILE
echo `date +%Y.%m.%d" "%H:%M:%S` "[psf.sh] TEMPPATH      = $TEMPPATH" >> $LOGFILE
echo `date +%Y.%m.%d" "%H:%M:%S` "[psf.sh] LOGPATH       = $LOGPATH" >> $LOGFILE
echo `date +%Y.%m.%d" "%H:%M:%S` "[psf.sh] MAGICK_TMPDIR = $MAGICK_TMP" >> $LOGFILE
echo `date +%Y.%m.%d" "%H:%M:%S` "[psf.sh] DPI1          = $DPI1" >> $LOGFILE
echo `date +%Y.%m.%d" "%H:%M:%S` "[psf.sh] DPI2          = $DPI2" >> $LOGFILE
echo `date +%Y.%m.%d" "%H:%M:%S` "[psf.sh] DPI3          = $DPI3" >> $LOGFILE
echo `date +%Y.%m.%d" "%H:%M:%S` "[psf.sh] DPI4          = $DPI4" >> $LOGFILE
echo `date +%Y.%m.%d" "%H:%M:%S` "[psf.sh] DPI5          = $DPI5" >> $LOGFILE

## schnipp schnapp

Im Logfile steht dann das hier :

2026.02.07 14:52:40 [psf.sh] Script: fileserver5: /home/daten/_Computersystem/fileserver5/scripts/psf.sh
2026.02.07 14:52:40 [psf.sh] Version: 12.10.2023 --------------------
2026.02.07 14:52:40 [psf.sh] 
2026.02.07 14:52:40 [psf.sh] --- Start ------------------------------
2026.02.07 14:52:40 [psf.sh] FILENAME      = test28.tif
2026.02.07 14:52:40 [psf.sh] FILENAMEBASE  = test28
2026.02.07 14:52:40 [psf.sh] TEMPPATH      = /home/daten/scanner/temp
2026.02.07 14:52:40 [psf.sh] LOGPATH       = /home/daten/scanner/log
2026.02.07 14:52:40 [psf.sh] MAGICK_TMPDIR = /home/daten/scanner/magick_tmp
2026.02.07 14:52:40 [psf.sh] DPI1          = 
2026.02.07 14:52:40 [psf.sh] DPI2          = 
2026.02.07 14:52:40 [psf.sh] DPI3          = 
2026.02.07 14:52:40 [psf.sh] DPI4          = 
2026.02.07 14:52:40 [psf.sh] DPI5          = 
2026.02.07 14:52:40 [psf.sh] MYPATH        = /home/daten/scanner/raw
2026.02.07 14:52:40 [psf.sh] BUPATH        = /home/daten/scanner/backup
2026.02.07 14:52:40 [psf.sh] DOCPATH       = /home/daten/scanner
2026.02.07 14:52:40 [psf.sh] Fehler initialisiert, Fehler = 0
2026.02.07 14:52:40 [psf.sh] auf Datei warten ...
2026.02.07 14:52:41 [psf.sh] cp -a test28.tif /home/daten/scanner/backup -- RC=0
2026.02.07 14:52:41 [psf.sh] Fehler = 0
2026.02.07 14:52:41 [psf.sh]  Starte -- convert /home/daten/scanner/raw/test28.tif /home/daten/scanner/temp/test28-%03d.tif
2026.02.07 14:52:41 [psf.sh]  Freier Speicher [MB]:  1062
2026.02.07 14:52:42 [psf.sh]  Fertig -- convert /home/daten/scanner/raw/test28.tif /home/daten/scanner/temp/test28-%03d.tif -- RC=0
2026.02.07 14:52:42 [psf.sh]  Fehler = 0
2026.02.07 14:52:42 [psf.sh] convert hat 1 Seite(n) erzeugt.
2026.02.07 14:52:42 [psf.sh] Seitenzähler auf S = 0 gesetzt.
2026.02.07 14:52:42 [psf.sh]  Freier Speicher vor Schleife [MB]:  996
2026.02.07 14:52:42 [psf.sh] # Beginn der Verarbeitung von Seite 1 von 1.
2026.02.07 14:52:42 [psf.sh]   SEITE=/home/daten/scanner/temp/test28-000.tif
2026.02.07 14:52:42 [psf.sh]   SEITEbase=test28-000
2026.02.07 14:52:42 [psf.sh] # Beginn des Pre-Processings von Seite 1 von 1.
2026.02.07 14:52:42 [psf.sh]  Starte -- magick /home/daten/scanner/temp/test28-000.tif -despeckle -blur 0x2 /home/daten/scanner/temp/test28-000.tif
2026.02.07 14:52:52 [psf.sh]  Fertig -- magick /home/daten/scanner/temp/test28-000.tif -despeckle -blur 0x2 /home/daten/scanner/temp/test28-000.tif
2026.02.07 14:52:52 [psf.sh]  Starte -- magick /home/daten/scanner/temp/test28-000.tif -colorspace Gray -threshold 50% /home/daten/scanner/temp/test28-000.tif
2026.02.07 14:52:53 [psf.sh]  Fertig -- magick /home/daten/scanner/temp/test28-000.tif -colorspace Gray -threshold 50% /home/daten/scanner/temp/test28-000.tif
2026.02.07 14:52:53 [psf.sh]  Starte -- magick /home/daten/scanner/temp/test28-000.tif -deskew 80% +repage /home/daten/scanner/temp/test28-000.tif
2026.02.07 14:53:19 [psf.sh]  Fertig -- magick /home/daten/scanner/temp/test28-000.tif -deskew 80% +repage /home/daten/scanner/temp/test28-000.tif
2026.02.07 14:53:19 [psf.sh]  Fehler = 0
2026.02.07 14:53:19 [psf.sh]  Starte -- tesseract /home/daten/scanner/temp/test28-000.tif /home/daten/scanner/temp/test28-000 -l deu pdf
2026.02.07 14:53:26 [psf.sh]  Fertig -- tesseract /home/daten/scanner/temp/test28-000.tif /home/daten/scanner/temp/test28-000 -l deu pdf -- RC=0
2026.02.07 14:53:26 [psf.sh]  Fehler = 0
2026.02.07 14:53:26 [psf.sh] Seitenzähler um 1 auf S = 1 erhöht.
2026.02.07 14:53:26 [psf.sh]  Freier Speicher nach Seite 1 [MB]:  1002
2026.02.07 14:53:26 [psf.sh]  Starte -- pdfunite /home/daten/scanner/temp/test28-*.pdf /home/daten/scanner/temp/test28.pdf -- RC = -1
2026.02.07 14:53:26 [psf.sh]  Fertig -- pdfunite /home/daten/scanner/temp/test28-*.pdf /home/daten/scanner/temp/test28.pdf -- RC = 0
2026.02.07 14:53:26 [psf.sh]  Fehler = 0
2026.02.07 14:53:26 [psf.sh] chown                               RC = 0
2026.02.07 14:53:26 [psf.sh] Fehler = 0
2026.02.07 14:53:26 [psf.sh] chgrp                               RC = 0
2026.02.07 14:53:26 [psf.sh] Fehler = 0
2026.02.07 14:53:26 [psf.sh] chmod                               RC = 0
2026.02.07 14:53:26 [psf.sh] Fehler = 0
2026.02.07 14:53:26 [psf.sh] Bereitstellen der fertigen Datei    RC = 0
2026.02.07 14:53:26 [psf.sh] Fehler = 0
2026.02.07 14:53:26 [psf.sh] aufräumen (FEHLER muss 0 sein)  FEHLER = 0
2026.02.07 14:53:26 [psf.sh] Fehler = 0
2026.02.07 14:53:26 [psf.sh] aufräumen: Ordner ~/raw           gelöscht
2026.02.07 14:53:26 [psf.sh] aufräumen: Ordner ~/temp          gelöscht
2026.02.07 14:53:26 [psf.sh] aufräumen: Ordner ~/backup        gelöscht
2026.02.07 14:53:26 [psf.sh] --- Ende ---------------------------------

Bitte zeigt mir den Fehler.

Danke und Gruß,

banause

shiro Team-Icon

Supporter

Anmeldungsdatum:
20. Juli 2020

Beiträge: 1449

Bitte zeigt mir den Fehler.

Ich sehe keinen simplen Fehler und kann daher nur vermuten, dass das Environment für die beiden Script-Abläufe unterschiedlich sind.

Ich würde daher den "identify" Befehl per "strace -f" laufen lassen. Einmal in dem Kontext, wo eine Ausgabe erfolgt und ein weiteres Mal in dem Script, das keine Ausgabe zeigt. Der Befehl wäre in beiden Fällen:

STRACELOG="$LOGPATH/$(date +strace-%X.log)"
strace -f identify -units PixelsPerInch -format '%[fx:int(resolution.x)]\n' "$F[0]" &>$STRACELOG

Die beiden erzeugten strace-Log-Dateien kann man dann mittels "diff" oder "meld" Vergleichen und die Unterschiede interpretieren. Mag sein, das unterschiedliche ".so" verwendet werden oder bei unterschiedlichen Usern Zugriffsprobleme vorhanden sind. Eventuell tauchen bei deinem "identify" Aufruf ja auch Fehlermeldungen auf, die nicht in den Logfile geschrieben werden.

Hast du auch mal meinen "mediainfo"-Vorschlag in Betracht gezogen?

Ruth-Wies

Avatar von Ruth-Wies

Anmeldungsdatum:
12. April 2023

Beiträge: 913

Wohnort: im Exil ;(

Noch ein Denkfehler meinerseits. ☹ Das mit dem Quoten ist überflüssig. Sollte der Dateiname ein Leerzeichen enthalten, ist er durch die Verwendung von $1 bereits mit dem ersten Leerzeichen abgeschnitten ist. Nachträgliches kann man das nichts mehr verbessern. Da müsst man schon anders ran gehen.


Mit Eingabe meinte ich:

  • Wie sieht denn die Eingabe aus / der Aufruf des Skripts?

  • In welchem Verzeichnis befindest du dich (pwd)?

  • In welchem Verzeichnis befindet sich die Datei?

Mit Ausgabe meinte ich, was bei der Ausführung des Skripts im Terminal erscheint, also direkte Fehlermeldungen o.ä..

shiro Team-Icon

Supporter

Anmeldungsdatum:
20. Juli 2020

Beiträge: 1449

Das mit dem Quoten ist überflüssig.

Dem würde ich widersprechen. Beispiel:

$ set 'Scan grau.tif'; echo $1
Scan grau.tif
$ identify -units PixelsPerInch -format '%[fx:int(resolution.x)]\n' "$1"'[0]'
300
$ identify -units PixelsPerInch -format '%[fx:int(resolution.x)]\n' $1'[0]'
identify-im6.q16: unable to open image `Scan': Datei oder Verzeichnis nicht gefunden @ error/blob.c/OpenBlob/2964.
identify-im6.q16: no decode delegate for this image format `' @ error/constitute.c/ReadImage/581.
identify-im6.q16: unable to open image `grau.tif': Datei oder Verzeichnis nicht gefunden @ error/blob.c/OpenBlob/2964.
identify-im6.q16: unable to open image `grau.tif': Datei oder Verzeichnis nicht gefunden @ error/blob.c/OpenBlob/2964.
$ 

Wie man sieht, erhält man bei einem "identity"-Fehler keine Ergebnis-Ausgabe.

banause

(Themenstarter)

Anmeldungsdatum:
17. November 2009

Beiträge: 321

shiro schrieb:

Hast du auch mal meinen "mediainfo"-Vorschlag in Betracht gezogen?

ja, habe ich eben auf beiden Rechnern installiert. Das Ergebnis ist exakt das gleiche. Per Dialog oder Test-Script klappt's. Im eigentlichen Skript dann nicht mehr.

Die Sache mit strace -f kannte ich nicht, habe sie aber eingebaut und zwei Logs erhalten (>500 Zeilen). Die diff-Ausgabe ist praktisch länger als die beiden Logs zusammen 😮)

Mir ist das absolut schleierhaft. Ich verwende den ImagerMagick Zoo seit Jahren und das funktioniert auch absolut zuverlässig. Identify kommt ja aus dem gleichen Stall, wie kann das dann solche Probleme ergeben.

Ruth-Wies schrieb:

Mit Eingabe meinte ich:

  • Wie sieht denn die Eingabe aus / der Aufruf des Skripts?

  • In welchem Verzeichnis befindest du dich (pwd)?

  • In welchem Verzeichnis befindet sich die Datei?

Okay, ich hole weiter aus. Der Netzwerkscanner legt seine Tiffs per ftp auf dem Server ab (/home/daten/scanner/raw). Dieses Verzeichnis wird per inotifywait überwacht

1
inotifywait -m -e CREATE --format %f /home/daten/scanner/raw | while read Line; do /home/daten/_Computersystem/fileserver5/scripts/psf.sh $Line; done &

Immer wenn eine Datei vom Scanner ankommt, wird das Skript /home/daten/_Computersystem/fileserver5/scripts/psf.sh mit dem Parameter $Line gestartet. $Line enthält den Namen der gerade vom Scanner geschickten Datei. Das Skript verwurstet die Tiffs zu PDFs mit OCR-Layer.

Ruth-Wies schrieb:

Mit Ausgabe meinte ich, was bei der Ausführung des Skripts im Terminal erscheint, also direkte Fehlermeldungen o.ä..

nichts. Daher habe ich das Test-Script gemacht, das ja keine Meldungen verschluckt. Und es kommen auch da keine Meldungen.

Hilft das?

Danke und Gruß,

banause

Ruth-Wies

Avatar von Ruth-Wies

Anmeldungsdatum:
12. April 2023

Beiträge: 913

Wohnort: im Exil ;(

Okay, ich hole weiter aus. …

Also sieht für mich die Sache so aus: Das Skript bekommt „test28.tif“ übergeben und versucht daraus die DPI auszulesen, was aber scheitert, weil es dies eigentlich mit „/home/daten/scanner/raw/test28.tif“ tun müsste.

banause

(Themenstarter)

Anmeldungsdatum:
17. November 2009

Beiträge: 321

Die Dateinamen und Pfade werden schon so aufbereitet, dass das script sie auch findet. Man sieht das ja an den übrigen magick-Befehlen, die mit der gleichen Variablen (für den Dateinamen) arbeiten.

Trotzdem habe ich jetzt den Verweis auf die zu untersuchende Datei expliziter angegeben:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14

# Dateiname der vom Scanner erzeugten Datei 
FILENAME=$1

# Pfad, unter dem der Scanner die Dateien ablegt
MYPATH="/home/daten/scanner/raw"

# absoluter Pfad zur Roh-Datei
ABSPATH="$MYPATH"/"$FILENAME"



DPI1=`identify -units PixelsPerInch -format '%[fx:int(resolution.x)]\n' "$MYPATH/$1"[0]`
DPI2=$(identify -units PixelsPerInch -format '%[fx:int(resolution.x)]\n' "$ABSPATH"[0])

Das Ergebnis ist leider das gleiche geblieben:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2026.02.07 18:40:01 [psf.sh] Script: fileserver5: /home/daten/_Computersystem/fileserver5/scripts/psf.sh
2026.02.07 18:40:01 [psf.sh] Version: 12.10.2023 --------------------
2026.02.07 18:40:01 [psf.sh] 
2026.02.07 18:40:01 [psf.sh] --- Start ------------------------------
2026.02.07 18:40:01 [psf.sh] MYPATH        = /home/daten/scanner/raw
2026.02.07 18:40:01 [psf.sh] FILENAME      = test43.tif
2026.02.07 18:40:01 [psf.sh] ABSPATH       = /home/daten/scanner/raw/test43.tif
2026.02.07 18:40:01 [psf.sh] FILENAMEBASE  = test43
2026.02.07 18:40:01 [psf.sh] TEMPPATH      = /home/daten/scanner/temp
2026.02.07 18:40:01 [psf.sh] LOGPATH       = /home/daten/scanner/log
2026.02.07 18:40:01 [psf.sh] MAGICK_TMPDIR = /home/daten/scanner/magick_tmp
2026.02.07 18:40:01 [psf.sh] BUPATH        = /home/daten/scanner/backup
2026.02.07 18:40:01 [psf.sh] DOCPATH       = /home/daten/scanner
2026.02.07 18:40:01 [psf.sh] DPI1          = 
2026.02.07 18:40:01 [psf.sh] DPI2          = 
2026.02.07 18:40:01 [psf.sh] Fehler initialisiert, Fehler = 0
2026.02.07 18:40:01 [psf.sh] auf Datei warten ...
2026.02.07 18:40:02 [psf.sh] cp -a test43.tif /home/daten/scanner/backup -- RC=0
2026.02.07 18:40:02 [psf.sh] Fehler = 0
2026.02.07 18:40:02 [psf.sh]  Starte -- convert /home/daten/scanner/raw/test43.tif /home/daten/scanner/temp/test43-%03d.tif
2026.02.07 18:40:02 [psf.sh]  Freier Speicher [MB]:  1136
2026.02.07 18:40:02 [psf.sh]  Fertig -- convert /home/daten/scanner/raw/test43.tif /home/daten/scanner/temp/test43-%03d.tif -- RC=0
2026.02.07 18:40:02 [psf.sh]  Fehler = 0
2026.02.07 18:40:02 [psf.sh] convert hat 1 Seite(n) erzeugt.
2026.02.07 18:40:02 [psf.sh] Seitenzähler auf S = 0 gesetzt.
2026.02.07 18:40:02 [psf.sh]  Freier Speicher vor Schleife [MB]:  1110
2026.02.07 18:40:02 [psf.sh] # Beginn der Verarbeitung von Seite 1 von 1.
2026.02.07 18:40:02 [psf.sh]   SEITE=/home/daten/scanner/temp/test43-000.tif
2026.02.07 18:40:02 [psf.sh]   SEITEbase=test43-000
2026.02.07 18:40:02 [psf.sh] # Beginn des Pre-Processings von Seite 1 von 1.
2026.02.07 18:40:02 [psf.sh]  Starte -- magick /home/daten/scanner/temp/test43-000.tif -despeckle -blur 0x2 /home/daten/scanner/temp/test43-000.tif
schnipp

Ich werde jetzt mal parallel das Syslog offen haben. Vielleicht sehe ich ja da etwas.

Ruth-Wies

Avatar von Ruth-Wies

Anmeldungsdatum:
12. April 2023

Beiträge: 913

Wohnort: im Exil ;(

Dann ist es an der Zeit dein Problem auf zu spalten in Teilprobleme.

a)

inotifywait -m -e CREATE --format %f /home/daten/scanner/raw | while read Line; do ; echo $Line done

b)

/home/daten/_Computersystem/fileserver5/scripts/psf.sh "test28.tif"

Wenn du zu b) nicht genug Ausgabe erhältst, aus der du schlau wirst, dann noch c)

set -x; /home/daten/_Computersystem/fileserver5/scripts/psf.sh test28.tif
Antworten |