Re: [un peu HS] sha-bang
steve <dlist@bluewin.ch> a écrit :
> Bonjour,
>
> Je suis en train d'expliquer les scripts sous *nix à un débutant. Je
> dois donc passer par le début à savoir le sha-bang (#!) suivi du chemin
> absolu de l'interpréteur de commande (/bin/sh par exemple). Je croyais que
> cette première ligne était *obligatoire* pour que le script s'exécute.
> Or le script suivant :
>
> <début script>
>
> echo "Ton nom ?"
> read nom
> echo "Ton nom est $nom"
>
> <fin script>
>
> fonctionne si je le lance par
>
> 1) sh script.sh et script.sh n'est pas exécutable
>
> 2) ./script.sh et script.sh est exécutable
>
> Donc dans les deux cas sans le sha-bang initial.
>
> Et là je suis embêté pour expliquer le pourquoi du comment.
>
> Pourriez-vous éclairer ma lanterne ?
Parce que les commandes que tu lances dans ton script sont des commandes
shell... que tu lances à partir d'un shell.
En l'occurrence, pour un script python, par exemple, ça ne marcherait
pas avec ce « sha-bang » : il lui faut en un spécifique.
1) $ cat foo.py
print "Hello World!"
$ python foo.py
Hello World!
2) $ cat bar.py
#! /usr/bin/python
print "Hello World!"
$ chmod +x bar.py
$ ./bar.py
Hello World!
Conclusion : tjrs avoir le réflexe de mettre le bon « sha-bang » en
début de script. Shell ou pas.
--
Fred
Reply to: