Guten Morgen, Am Die, 16 Mär 2004, schrieb David Haller: [...]
Probier's mal hiermit:
==== ~/bin/pipewrap ==== #!/bin/sh # set -x test -n "$1" || exit 1 EXE="$1" if test $# -eq 2 && test "x$1" = "x-" || test $# -eq 1; then TMP="`mktemp \"/tmp/pipewrap.$$.XXXXXX\"`" cat > "$TMP" $EXE "$TMP" rm -f "$TMP" else # Fehlerbehandlung? exec "$EXE" "$@" fi ====
Perfekt! Genau dass, was ich wollte. Allerdings versteh ich es nicht ganz. Vielleicht habe ich auch ein etwas falsche Vorstellung von der Pipe-Funktion von mutt. Warum muss denn tatsächlich erst "manuell" die temporäre Datei erzeugt werden? Was produziert denn die muttsche pipe eigentlich? Muss ich mir das so vorstellen wie die shell-pipe, die die Standardausgabe auf die Standardeingabe umleitet? Ich kann mir allerdings nicht so recht vorstellen, was das bei z.B. einer Bilddatei bedeutet.
Funktioniert mit xv, xnview, gimp, kuickshow, ee zumindest solange diese nicht im Hintergrund gestartet werden und das rm dem Programm zuvorkommt. Mit dem gimp-wrapper kollidiert es also. Mit
In der Tat. Sehr nützlich das ganze. Auch außerhalb von mutt kann man diesen pipewrapper ja durchaus dazu benutzen um z.B. die Ausgabe von shell-Kommandos direkt in einem Editor zu öffnen. Eigentlich merkwürdig, dass so etwas nicht standardmäßig vorhanden ist. So eine "öffnen-mit-Funktion" gibt es doch sonst fast überall.
$EXE "$TMP" rm -f "$TMP"
im gimp-wrapper geht's aber.
Naja, den brauchts ja eigentlich nicht mehr, wenn der pipewrapper da ist. Danke jedenfallls mal. Hannes