CUESTIÓN

  • Yo edito mis ficheros. Yo los compilo mediante make. Y, cuando voy a ejecutar la primera prueba de esta sesión, me aparece:
    <ENCINA>/home/gyermo/PRUEBA$ prueba
    ksh: prueba:  no encontrado 
    Y yo es que alucino porque el fichero prueba sí está:
    <ENCINA>/home/gyermo/PRUEBA$ ls
    prueba    prueba.c  prueba.o  raiz.c    raiz.h    raiz.o    Makefile 
    ¿Qué me está pasando?

    SOLUCIÓN

    Cuando en la shell tecleamos directamente el nombre de un fichero, se supone que es un fichero ejecutable y que queremos ejecutarlo en estos momentos. Así, si tecleo prueba, la shell supone que quiero ejecutar un fichero que se llama prueba. Pero ¿cuál de todos los posibles ficheros que se llaman prueba y que están en el disco duro?

    El sistema operativo consulta la variable de entorno PATH para ver en qué directorios debe buscar los ficheros ejecutables. En MS-DOS, si el sistema no encuentra el fichero en ninguno de los directorios del path, busca en el directorio actual. En Unix, por razones de seguridad, hay que especificar explícitamente el directorio actual en el path para que busque ahí. Esto se hace incluyendo un punto (.) en PATH. Podéis ver el contenido de la variable de entorno PATH, mediante:
            echo $PATH 
    El caso que se preguntaba corresponde a que en la variable de entorno PATH no aparece el directorio actual.
    © 2003 Guillermo González Talaván.