/ / Как да създам псевдо файл в bash, който добавя към друг файл - linux, bash, shell

Как да създам псевдо файл в bash, който се добавя към друг файл - linux, bash, shell

Имам затворена програма (а именно Intersystems"csession" Cachédb терминал), който ще пише във файл, даден като параметър. Той прави това няколко пъти, след което се връща. Всеки път, даден файл е презаписан, така че в края получавам само последния резултат ...

Имах идеята, че може да бъде възможно да се подвежда и да се даде специален псевдофайл като параметър, който да действа като прокси и да добавя в него записаното в него.

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

Дали някой мисли, че това може да е изпълнимо, вероятно използвайки малко полезна програма?

Отговори:

4 за отговор № 1

За тази цел можете да използвате FIFO файл (именуван тръба). За да видите как работят, отворете два прозореца на терминала. В едно, направете

cd /tmp
mkfifo pipe
tail -f pipe

и в другата

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

За реалния проблем, оставете приложението си да пише във FIFO и да го използва tail -f pipe > outputfile на заден план, за да събере резултатите outputfile.


1 за отговор № 2

Можеш да използваш /dev/stdout като изходен файл, свържете го към cat и добавете стандартен изход към файл с >>

csession /dev/stdout | cat >>realfile

Това няма да презапише, а ще се добави към съществуващия файл.