/ / Come posso creare un pseudo file in bash che si aggiunge a un altro file - linux, bash, shell

Come faccio a creare uno pseudo file in bash che si aggiunge ad un altro file: linux, bash, shell

Ho un programma chiuso (vale a dire Intersystems"csession" Cachédb terminal) che scriverà in un file indicato come parametro. Lo fa più volte, come poi ritorna. Ogni volta, il file dato viene sovrascritto, quindi alla fine ottengo solo l'ultimo risultato ...

Ho avuto l'idea che potesse essere possibile ingannare e dare uno speciale pseudo-file come parametro, che fungesse da proxy e aggiungesse ciò che è scritto in esso in un altro file.

create proxyfile as >> realfile
cat "Hello" > proxyfile
cat "Bye" > proxyfile
cat realfile
Hello
Bye

Qualcuno pensa che questo potrebbe essere fattibile, magari usando una piccola utility?

risposte:

4 per risposta № 1

A tale scopo è possibile utilizzare un file FIFO (denominato pipe). Per vedere come funzionano, apri due finestre del terminale. In uno, fallo

cd /tmp
mkfifo pipe
tail -f pipe

e nell'altro

cd /tmp
echo "Hello" > pipe
echo "Bye" > pipe

Per il problema reale, lascia che l'applicazione scriva su FIFO e utilizzi tail -f pipe > outputfile sullo sfondo in cui raccogliere i risultati outputfile.


1 per risposta № 2

Puoi usare /dev/stdout come file di output, reindirizzalo a cat e aggiungi lo standard output a un file con >>

csession /dev/stdout | cat >>realfile

Questo non sovrascriverà, ma aggiungerà al file esistente.