Attends ... ne pas confondre:
./un_programme
. un_programme
Dans le 1er cas, tu donnes explicitement l'emplacement de ton script à partir ici du répertoire courant qui s'appelle '.' (on s'en sert par exemple si on a pas ce répertoire dans le PATH).
Dans le second cas, c'est ce que tu veux. L'explication est dans le man de bash:
Spoiler :
BASH_ARGC
An array variable whose values are the number of parameters in each frame of the current bash exeâ
cution call stack. The number of parameters to the current subroutine (shell function or script
executed with . or source) is at the top of the stack. When a subroutine is executed, the number
of parameters passed is pushed onto BASH_ARGC. The shell sets BASH_ARGC only when in extended
debugging mode (see the description of the extdebug option to the shopt builtin below) |
Exemple:
phil@karikatetmp$ cat s1
export toto=1
echo $BASH_ARGC
phil@karikatetmp$ ./s1
phil@karikatetmp$ . s1
1
Message édité par philx le 12-01-2007 à 15:14:07