Antonio Luque wrote:
> ... ya que dichos script me los ejecuta, pero s�lo
> en el directorio donde est� el Perl, es decir que si dichos script los
> ejecuto en /usr/bin me funcionan de perlas pero si me creo una carpeta y
> los guardo ah� s�lo me funcionan, gracias a algunos de vosotros
> (Grzegorz...), poniendo ./script. Debe ser por lo que algunos me habeis
> apuntado del PATH. Supongo que debe ser la l�nea del fichero
> ".bash_profile", pero ah� si que tengo puesta la ruta donde esta el perl.
> Creo que no tengo claro algo �que es?.

Bueno bueno bueno bueno...
Creo que tienes un poco liado "el concepto" ;-)

A ver, voy a dar unas explicaciones desde mi punto de vista. Es
_MUY_ posible que est� equivocado, asi que los expertos, estad
atentos.

Bien, si tu creas un script normal, con �rdenes del sistema, como cd,
mkdir, rm, etc, el sistema lo ejecuta directamente. Si est� escrito en Perl,
necesita un int�rprete que le diga al sistema operativo lo que significa
tal o cual comando.

Para indicarle esto al sistema operativo, al principio de todos los scripts
perl est� la l�nea que indica al sistema operativo el int�rprete que debe
usar para "entender" los comandos. Esto suele ser #!usr/bin/perl

La confusi�n que tienes es que el PATH es una variable que le indica al
sistema operativo los directorios en los que tiene que mirar cuando el
usuario quiere ejecutar un programa. Esta suele estar indicada en el
fichero ya mencionado .bash_profile.

El caso es que Linux nunca mira en el directorio en el que est�s
actualmente para ejecutar el comando a no ser que se lo digas
expl�citamente.

Supongamos que tienes el siguiente path:

/usr/bin;/usr/pepe;/usr/nacle

y en el directorio bin tienes el int�rprete perl, y tanto en /usr/pepe como
en /usr/pepe/prueba tienes dos scripts ex�ctamente iguales en perl.

Si vas al directorio /usr/pepe y tecleas el nombre del script, se
ejecutar� porque el directorio actual casualmente est� en el PATH, pero
su vas a /usr/pepe/prueba y tecleas el nombre a secas no funcionar�.
Tienes que indicarle con ./nombrescript que mire en el directorio actual
al buscar ficheros ejecutables.

Otra forma ser�a que dentro de /usr/pepe/prueba tecleases

perl nombrescript

Entonces, el sistema operativo buscar�a el programa perl, que est� en el
PATH, y le dir�a que ejecutase el fichero nombrescript del directorio en
el que se hace la petici�n de ejecuci�n.

En resumen: cuando un fichero est� en un directorio que no es el path,
siempre hay que hacer ./nombrefichero. Esto vale tanto para scripts
como para otros ficheros ejecutables. Esto lo aviso, porque es muy
frustrante ir al directorio /usr/games, teclear el nombre de un juego y
que no funcione porque se te olvid� poner el ./ delante :-)

Grzegorz Adam Hankiewicz - [EMAIL PROTECTED] - http://web.jet.es/gregorio/
Gogosoftware - http://welcome.to/gogosoftware/

Responder a