> Pues eso. Resulta que ando haciendo scrips (nada serio, caquita todo) y a
> veces para ejecutarlos tengo que poner en la linea de comandos sh
> nombre_del_script.sh o incluso ./nombre_del_script. Le he puesto en la
> puesto en la primera linea el #!/bin/sh, le he puesto permisos 777 le he
> puesto una extension .sh, se la he quitado... Y nada. Sin embargo, si pongo
> el script en un directorio que está en el path (como por ejemplo en /bin/)
> sí que funciona "solo" (sin sh ni ./). ¿Esto es normal?

Sí, un sistema UNIX busca los ejecutables en los directorios indicados en el 
PATH (echo $PATH para ver el tuyo). Esto no es un fallo, sino que es algo 
positivo. Si los directorios que contienen comandos y programas 
(/bin, /usr/bin, y similares) sólo pueden ser escritos por el superusuario, 
entonces es difícil que un extraño consiga colar un comando dañino y hacer 
que el usuario lo ejecute.

> ¿Hay manera de que no haya que dejar el script en el path para ejecutarlo
> sin sh?. Hombre, no es que me importe, pero me amosca

Claro que se puede, simplemente añadiendo el directorio "." al PATH, para que 
busque en el directorio actual en ese momento. No te lo recomiendo en 
absoluto, el tener que poner "./fichero_ejecutable" para ejecutar un fichero 
en el directorio actual es una cosa normal y deseable. El poner "." en el 
PATH puede resultar más cómodo, pero ese es el tipo de filosofías que llevan 
a catástrofes Windows (es más cómodo autoejecutar los adjuntos de los emails 
que hacer que lo hagan los usuarios y pedirles confirmación). ;-)

Haplo

Responder a