Forums Neueste Beiträge
 

Vermeiden von temporären Files

28/01/2008 - 20:37 von Marc Schoechlin | Report spam
Hallo,

in Shellskripen werden ja oft Daten in temporàren Files
zwischengespeichert um diese für weitere Zwischenschritte zur Verfügung zu haben.

Oft gibt es dann ungefàhr so Konstrukte wie
-
TMP=/tmp/foobarbaz$$
trap "echo 'removing tmpfile $TMP';rm $TMP;exit 99" INT
trap "echo 'removing tmpfile $TMP';rm $TMP;exit 99" TERM
(
echo foo
echo bar
echo baz
)>$TMP
if (egrep "^foo" $tmp &>/dev/null );then
cat $tmp| .weiterverarbeitung..
fi
rm $tmp
-

Ich finde da aber weniger schön, da z.B. bei einem SIGKILL das
temporàre File nicht weggeràumt wird.

Mein bisheriger Workaround sieht ungefàhr so aus:
TMP=$( (
echo foo
echo bar
echo baz
)|tr -t "" "\a"
)
if (echo $TMP| tr -t "\a" ""|egrep "^foo" &>/dev/null );then
cat $tmp|tr -t "\a" ""| .weiterverarbeitung..
fi

Kennt jemand einen besseren Weg ?

Ideal wàre es, wenn es in der Bash virtuelle Files im Speicher gàbe,
die so intuitiv wie reale Files zu benutzen sind
Sowas wie das hier:

echo > [TMPFILE:1]
cat [TMPFILE:1]
cat [TMPFILE:1]|grep foo


Gruß
Marc
 

Lesen sie die antworten

#1 Heike C. Zimmerer
28/01/2008 - 21:04 | Warnen spam
Marc Schoechlin writes:

in Shellskripen werden ja oft Daten in temporàren Files
zwischengespeichert um diese für weitere Zwischenschritte zur Verfügung zu haben.

Oft gibt es dann ungefàhr so Konstrukte wie
-
TMP=/tmp/foobarbaz$$
trap "echo 'removing tmpfile $TMP';rm $TMP;exit 99" INT
trap "echo 'removing tmpfile $TMP';rm $TMP;exit 99" TERM


[..]
Ich finde da aber weniger schön, da z.B. bei einem SIGKILL das
temporàre File nicht weggeràumt wird.


[..]
Kennt jemand einen besseren Weg ?



Du beziehst Dich auf die Bash. Dort kannst Du einen Trap auf EXIT
setzen.

Ähnliche fragen