[gull] question ubuntu

Leopoldo Ghielmetti leopoldo.ghielmetti at a3.epfl.ch
Wed Mar 12 18:24:41 CET 2008


On Wed, 2008-03-12 at 17:59 +0100, Daniel Cordey wrote:
> On Wednesday 12 March 2008, Dominique MULLER wrote:
> 
> > A moins qu'il a bel et bien fait chown -R root.root * depuis / et
> > la... en effet, on le fait pas 2 fois... ;-)
> 
> On croit etre a l'abri losrque l'on a commis une fois ce genre d'erreur.... Et 
> ben non ! Le danger n'est certainement plus l'interactivite de la commande, 
> mais celles que l'on peut commetre du meme genre dans un script. Je fais 
> aussi particulierement attention a 2 choses (avis tres perso !) :
> 
> tenpo='xxx'
> allgrabage='prefix'
> ...
> newdr=/${tempo}
> ...
> cd ${newdir}
> rm -rf ${allgarbage}*
> 
> Aie... en effet, si vous avez commis une erreur lors de l'initialisation de 
> l'une des variables, vous pouvez courrir aussi a la cata. En shell script il 
> est tres facile de commetre ce genre d'erreur (je parle par experience). 
> Donc, j'essaie de 'blinder' mes 'cd' et mes 'rm'... Ce n'est pas la meme 
> erreur, mais le resultat est le meme :-)

Oui, et en plus moi je mets toujours des "" autour des variables
d'environnement si je ne suis pas sûr qu'ils ne contiendront JAMAIS des
espaces. Car ça peut aussi arriver un beau
cd ${dir}
rm -rf *

ou dir="/mon repertoire"

ce qui donne un bel erreur dans le cd et le rm -rf s'applique n'importe
ou.

Donc:
1. utiliser: cd "${dir}"
2. tester le résultat du cd avant de passer au rm.

Mais dans le cas précis il s'agissait d'une commande passée en mode
interactif, donc tous ces bons conseils ne sont malheureusement rien
d'autre que ça, des bons conseils.

> dc

ciao, Leo




More information about the gull mailing list