close() dans bash (ou anysh)

Philippe Jacquot philippe.j at sparx.com
Fri Feb 24 17:13:04 CET 2006


Jeremy Monnet a écrit :

>On 2/24/06, Philippe Jacquot <philippe.j at sparx.com> wrote:
>  
>
>>De fait, je faisais un truc comme ça:
>>
>>#!/bin/bash
>>if [ "x$0" == "xson" ]; then
>>        # ceci est le fils
>>        bidule
>>        truc
>>        machin
>>        umount /tra/la/la
>>else
>>        # ceci est le popa
>>        zwig
>>        zwug
>>        exec -a son $0
>>fi
>>
>>
>>Qui ne marche pas, donc.
>>>From the man:
>>If -a is supplied, the shell passes name as the zeroth argument to the executed command.
>>Que j'ai traduit par "Si y'a -a, le shell pass "name" en $0".
>>
>>    
>>
>
>If  command  is  specified,  it replaces the shell. No new process is created.
>Ce qui veut dire que tu ne crées pas un nouveau fils, il remplace son
>père. Je ne suis pas sur d'obtenir le même comportement ?
>par exemple lancé en ligne de commande, la commande exec termine le
>shell. Logique, puisqu'il s'est remplacé par la commande donnée en
>argument, lorsque la commande s'arrête c'est la fin des haricots pour
>tout le monde.
>  
>
Oui, oui, de fait. Un exec, c'est juste le process qui charge un nouveau 
code, mais garde l'environnement, les descripteurs, etc... donc pas de fork.
En l'occurence, "exec -a  bidule machin", charge le code de "machin" et, 
si je comprend bien le man, devrait mettre "bidule" dans $0.
Or $0 ne change pas après l'exec. So what's dat -a ?

Par exemple, avec le code suivant (/tmp/truc):
#!/bin/sh
echo $0 $@
exec -a bidule $0

J'aurai pensé avoir une première ligne avec "/tmp/truc", puis les autres 
avec "bidule". Mais que nenni.
D'où ma perplexité.  :)

thx qd mm et a +



>Jeremy
>--
>Linux Registered User #317862
>Linux From Scratch Registered User #16571
>Please do not send me .doc, .xls, .ppt, as I will *NOT* read them.
>_______________________________________________
>Shell mailing list
>Shell at lists.asyd.net
>http://lists.asyd.net/mailman/listinfo.cgi/shell
>  
>




More information about the Shell mailing list