[ LUGOS ] pisanje na datoteko iz shell skripte

Andrej Komelj andrej.komelj na guest.arnes.si
Pon Mar 13 00:49:33 CET 2000


> Kako se v shell skripti odpre datoteko z dolocenim imenom, pise
> nanjo (brez prepisovanja) in nato zapre? (exec?)

exec [file_descriptor]>> ime_datoteke
echo bruhaha >&[file_descriptor]

> Redirekcija stdouta mi ni vsec, ker bi rad pisal na vec kot eno
> datoteko hkrati.

IMHO je to najlazji nacin. Na vec datotek lahko potem pises s pomocjo
programa tee.

Recimo:

#!/bin/sh
PRVA=prva
DRUGA=druga_datoteka
exec 3>> $PRVA
exec 4>> $DRUGA
echo na stdout
echo na stderr >&2
echo na prvo >&3
echo na drugo >&4
echo na prvo in drugo | tee -a $PRVA >&4
{
	echo tole
	echo vse
	echo potuje
	echo v prvo datoteko
} >&3
echo pa se malo na stdout
{
	echo in na
	echo obe
	echo datoteki
	echo hkrati
} | tee -a $PRVA >&4

--- snip ---

Seveda je v primeru tee-ja tisto caranje s "file descriptorji" povsem
nepotrebno. Najbolje, da navajas kar imena:

{ echo bla; echo blu; } | tee -a $PRVA >> $DRUGA

-- 
Andrej.

... Never mind the oxygen - this man's a donor.




Dodatne informacije o seznamu Starilist