Remarque : Et a quoi ca sert d'ecrire des bouts de FAQ pour fcol si on met
pas l'integrateur en CC ?
On Tue, 18 Apr 2000, Jerome Combaz wrote:
> >Mais dans la FAQ fcol, le probl�me est ``Le shell en prend pas en
> >compte un ex�cutable plac� dans un r�pertoire qui figure pourtant dans
> >le PATH.''. Ce n'�tait pas le probl�me de JC Helary. Il faudrait donc
> >une nouvelle entr�e dans la FAQ fcol.
>
>
> Ah bon !?
>
> ==========
Question : mon script ne veut pas se lancer
> Contrairement � DOS, le r�pertoire courant (qui s'appelle .) n'est pas
> recherch� explicitement lors de la recherche des ex�cutables. Solution :
> l'ajouter dans le PATH (d�conseill� pour des raisons de s�curit�(*)) ou
lancer
> l'ex�cutable ainsi : ./programme
De plus, il faut v�rifier que le script est bien marqu� executable par le
systeme. Au besoin, on fera
chmod a+x <le nom du script>
pour que ca devienne le cas.
Enfin, pour les scripts, il faut que la premiere ligne du fichier indique
quel est le programme sens� interpr�ter le fichier. La syntaxe est
les deux symboles '#!' suivis du chemin complet pour acceder au
programme (et cette ligne DOIT ETRE LA PREMIERE). Par exemple, pour un
script perl, il faut :
#!/usr/bin/perl
pour du bash :
#!/bin/bash
pour du python
#!/usr/bin/python
et ainsi de suite. On peut passer des arguments, si on a envie. Par
exemple pour que perl r�le � l'usage de variables non initialis�es, on
fait :
#!/usr/bin/perl -w
(*) La s�curit� du PATH (autre entr�e ?)
Si on met le r�pertoire courant dans le PATH, on risque des ennuis :
- s'il se trouve avant les autres r�pertoires (exemple bash export
PATH=".:$PATH"), n'importe qui peut vous faire executer des commandes
stupides : il suffit de poser un executable nomm� 'cd' ou 'ls' dans /tmp
qui fait de vilaines choses, et celui qui a rajout� le r�pertoire '.' dans
son path va se faire avoir.
- Si on le met � la fin (export PATH="$PATH:."), on est sur de toujours
utiliser le vrai 'cd', et le vrai 'ls'. Mais on est pas � l'abri pour
autant : on est tous un peu dislexiques, et si les mechants programmes
sus-cit�s s'appellent 'xs' ('cd' en se trompant d'un colonne de touches
vers la gauche sur le clavier), ou 'sl' ('ls' � l'envers), ils ont encore
de bonnes chances de pieger les imprudents.
Conclusion, sur une machine multi-utilisateurs, il ne faut pas mettre le
r�pertoire courant dans le PATH, et appeller les scripts par :
./nomDuScript
Voila, voila, Mt.