[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [un peu HS] sha-bang



Le mercredi 02 juillet 2008 à 09:12 +0200, steve 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

Le script est simplement interprété par le shell qui le lance; sh dans
le premier cas, le shell courant dans le second cas. La ligne she-bang
permet d'indiquer le programme qui devrait être utilisé pour lire le
script. En son absence, le shell essaie tout seul.

Ici le script est un script shell. Écrit un petit bout de perl ou de
python, ou autre. Tu vas voir que si tu cherches à l'invoquer sans
she-bang, le shell va t'insulter copieusement.

> 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 ?
> 
> Merci d'avance

De rien.

-- 
David.


Reply to: