Am Freitag, 19. Juni 2009 20:16:36 schrieb Florian Gross:
Am Freitag 19 Juni 2009 glaubte Stefan Plenert zu wissen:
Am Freitag, 19. Juni 2009 00:28:40 schrieb Florian Gross:
Am Donnerstag 18 Juni 2009 glaubte Stefan Plenert zu wissen:
/usr/share/inkscape/extensions/cdr2svg.sh: line 9: /tmp/tmp.pueaLeOjK9.svg: Datei oder Verzeichnis nicht gefunden.
Steht IMO klar da: In Zeile 9 des Scriptes soll ein Zugriff auf die Datei /tmp/tmp.pueaLeOjK9.svg stattfinden. Und die wird nicht gefunden.
Warum da unbedingt eine temporäre Datei aufgerufen/geladen werden soll ist mir schleierhaft. Wenn die Datei wichtig ist, hat sie in /tmp nix verloren. Dem Dateinamen nach sollte sie eigentlich nicht wichtig sein.
Beim öffnen wird wohl die Datei zwischengespeichert, bis die Veränderungen fest gespeichert werden.
Sowas ist Sinn einer temporären Datei. Dann macht auch die Ablage in /tmp sinn.
Daher wird die Datei auch jedes mal unter einen anderen Namen gespeichert.
Klar.
Ich frage mich gerade, wann bzw. von welchem Programm die Datei erzeugt wird. Und ob die Datei nicht schon wieder gelöscht wird, bis dein Script zum Einsatz kommt. Hm, Sieht nach deinem Script aus.
tmp.iJrfunq6vJ.svg tmp.sDpZeq1BVg.svg
tmp.Variable.svg
Ich habe 2 mal die selbe Datei geöffnet.
Da sollte auch jedesmal ein anderer Dateiname rauskommen.
- Das Script
Ok, meine Kenntnisse über Scripte sind überschaubar. ;-)
Meine nicht, ich habe das Script nicht geschrieben.
Ich stell jetzt mal mehr oder weniger blöde Fragen zu deinem Script. Entweder kommst du selbst dahinter, was da schiefläuft oder jemand mit Ahnung greift ein. *mit dem Zaunpfahl wink* Und ich lerne hoffentlich was dabei.
#! /bin/sh
Das ist klar. ;-)
rc=0
Sagt mir gar nichts. Was bewirkt das?
TMPDIR="${TMPDIR-/tmp}"
Die Variable TMPDIR wird auf /tmp gesetzt, falls nicht schon vorhanden. OK.
TEMPFILENAME=`mktemp 2>/dev/null || echo "$TMPDIR/$$"`
TEMPFILENAME wird gesetzt. Deren Inhalt wird so erzeugt:
Entweder wird eine temporäre Datei erzeugt und eventuelle Fehlerausgaben gehen nach /dev/null ODER es wird $TMPDIR ausgelesen und die Prozessnummer des Scriptes wird als Dateiname angehängt.
Soweit richtig?
TEMPFILENAME=${TEMPFILENAME}.svg
Jetzt wird an den Inhalt von TEMPFILENAME noch .svg hinzugefügt.
So wie es aussieht, wird bei dir die temporäre Datei erzeugt und .svg hinzugefügt. Das ist aus den von dir genannten Dateien
In tmp habe ich folgendes gefunden: Variable, tmp.Variable und Variable.xxx (Endung der Anwendung, z.B. Variable.sla von Scribus) Einige Anwendungen, wie Audacity, legen in tmp eigene Ordner an. Aber ich habe keine Datei tmp.Variable.xxx gefunden.
| tmp.iJrfunq6vJ.svg | tmp.sDpZeq1BVg.svg
ersichtlich.
uniconv "$1" "${TEMPFILENAME}" > /dev/null 2>&1 || rc=1
Hm, ist der Aufruf uniconv richtig?
cat < "${TEMPFILENAME}" || rc=1
In dieser Zeile findet er die Datei nicht. Schickst du deine vorher erzeugte Datei nach /dev/null? Irgendwie bekomme ich den Eindruck.
Den den letzten zwei Zeilen kommt das Script gar nicht mehr.
Und mein Eindruck, daß du deine temporäre Datei ins Nirvana
schickst, verstärkt sich mit den folgenden drei Zeilen:
linux-dg6x:/home/stefan # cd / linux-dg6x:/ # find / -type f -name tmp.*.svg -print find: "/home/stefan/.gvfs": Keine Berechtigung
Gebe ein bischen zu, war nicht gerade Intelligent. Suchte über die Shell aber hatte kein Erfolg. Weiß nicht warum der mir sagte: keine Berechtigung, obwohl ich in root war.
Und bevor ein falscher Eindruck von meinen Kenntnissen entsteht: Um das Script halbwegs zu verstehen, habe ich http://www.selflinux.org/selflinux/html/shellprogrammierung03.html und http://de.wikibooks.org/wiki/Linux-Kompendium:_Shellprogrammierung bemüht.
flo --
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org