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.

Répondre à