Le shebang ne provoque jamais le bifurcation d'un processus. Il ne fait pas tout ce qui est À MOINS que le script soit exécutable et qu'il soit invoqué de telle manière qu'il amène le système à évaluer le shebang pour voir avec quel programme/script exécuter le script.
Si, par exemple, vous étiez déjà sous bash, et que vous exécutiez le script avec le paramètre source
alors le script serait exécuté à l'intérieur du script que vous êtes en train d'exécuter, et la commande exit
affecterait ce processus Shell, plutôt que d'être un nouveau processus Shell qui a été terminé.
Si vous avez un fichier script que vous voulez exécuter, vous devez le rendre exécutable avec la commande suivante :
chmod +x script
Ensuite, si vous voulez exécuter le script, et si nous supposons que le fichier script se trouve dans le répertoire courant, vous utilisez la commande suivante :
./script
Notez que c'est très différent de . script
qui est juste une notation abrégée pour source script
.
Le site ./script
est un chemin d'accès relatif au fichier script, ce qui signifie rechercher dans le répertoire courant pour trouver le fichier script 'script' et ensuite l'exécuter - ce qui ne fonctionne que si le fichier script est exécutable.
Si vous avez un fichier script qui n'est PAS exécutable, alors vous pouvez l'invoquer avec :
bash script
Mais dans ce cas, vous spécifiez quel Shell exécuter et la ligne shebang est ignorée.
1 votes
Comment l'avez-vous invoqué ? Quelle est la version de bash ?