On Mon, 12 Feb 2001, [EMAIL PROTECTED] wrote:
> je pense que comme ca, ca devrait fonctionner, par contre si tu fais:
> $ sed "s/$IPTMP1/$IPTMP2/" < /etc/mail/access > /etc/mail/access
> alors ca ne marche pas, car, sauf erreur, le shell ouvre le fichier
> /etc/mail/access en ecriture et en lecture et quand tu commences a
> lire, alors il a deja ete efface pour y reecrire.
> 
> a mon avis le mieux serait d'utiliser un fichier temporaire:
> $ sed "s/$IPTMP1/$IPTMP2/" < /etc/mail/access > /etc/mail/access.tmp
> $ mv -f /etc/mail/access.tmp /etc/mail/access

L'ideal etant :

$ sed "s/$IPTMP1/$IPTMP2/" < /etc/mail/access >/tmp/myscript
test $? && mv /tmp/myscript /etc/mail/access

Ainsi, to nfichier access ne sera remplacer que si 'sed' a pu s'executer
correctement. Ceci evite d'ecraser l'integralite de ton fichier si par hasard
la variable IPTMP* contient quelque chose ne pouvant etre traiter par sed. 
Si sed ne peut traiter (parse) une commande, le fichier de sortie est vide...
c'est souvent tres genant :-(

Daniel
--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question.

Répondre à