<Anterior | Contenido | Siguiente>
Ubicación del archivo de secuencia de comandos
Con los permisos establecidos, ahora podemos ejecutar nuestro script:
[yo @ linuxbox ~] $ ./Hola Mundo
Hola Mundo!
[yo @ linuxbox ~] $ ./Hola Mundo
Hola Mundo!
Para que se ejecute el script, debemos preceder al nombre del script con una ruta explícita. Si no lo hacemos, obtenemos esto:
[yo @ linuxbox ~] $ Hola Mundo
bash: hello_world: comando no encontrado
[yo @ linuxbox ~] $ Hola Mundo
bash: hello_world: comando no encontrado
¿Por qué es esto? ¿Qué hace que nuestro script sea diferente de otros programas? Resulta que nada. Nuestro guión está bien. Su ubicación es el problema. En el Capítulo 11, discutimos el TRAYECTORIA variable de entorno y su efecto sobre cómo el sistema busca programas ejecutables. En resumen, el sistema busca en una lista de directorios cada vez que necesita encontrar un programa ejecutable, si no se especifica una ruta explícita. Así es como el sistema sabe ejecutar
/ bin / ls cuando escribimos ls en la línea de comando. El directorio / bin es uno de los directorios que el sistema busca automáticamente. La lista de directorios se mantiene dentro de una variable de entorno llamada PATH. La variable PATH contiene una lista de directorios separados por dos puntos para buscar. Podemos ver el contenido de PATH:
Ubicación del archivo de secuencia de comandos
[yo @ linuxbox ~] $ echo $ PATH
/ inicio / yo / bin: / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin:
/ bin: / usr / juegos
[yo @ linuxbox ~] $ echo $ PATH
/ inicio / yo / bin: / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin:
/ bin: / usr / juegos
Aquí vemos nuestra lista de directorios. Si nuestro script estuviera ubicado en cualquiera de los directorios de la lista, nuestro problema estaría resuelto. Observe el primer directorio de la lista,
/ inicio / me / bin. La mayoría de las distribuciones de Linux configuran la variable PATH para que contenga un directorio bin en el directorio de inicio del usuario, para permitir que los usuarios ejecuten sus propios programas. Entonces, si creamos el directorio bin y colocamos nuestro script dentro de él, debería comenzar a funcionar como otros programas:
[yo @ linuxbox ~] $ contenedor mkdir [yo @ linuxbox ~] $ mv hola_mundo bin [yo @ linuxbox ~] $ Hola Mundo
Hola Mundo!
[yo @ linuxbox ~] $ contenedor mkdir [yo @ linuxbox ~] $ mv hola_mundo bin [yo @ linuxbox ~] $ Hola Mundo
Hola Mundo!
Y así es.
Si TRAYECTORIA variable no contiene el directorio, podemos agregarlo fácilmente al incluir esta línea en nuestro .bashrc archivo:
export PATH = ~ / bin: "$ PATH"
export PATH = ~ / bin: "$ PATH"
Una vez realizado este cambio, entrará en vigor en cada nueva sesión de terminal. Para aplicar el cambio a la sesión de terminal actual, debemos hacer que el shell vuelva a leer el .bashrc expediente. Esto se puede hacer "abasteciéndolo":
[yo @ linuxbox ~] $ . .bashrc
[yo @ linuxbox ~] $ . .bashrc
El punto (.) es un sinónimo del fuente comando, un intérprete de comandos de shell que lee un archivo específico de comandos de shell y lo trata como una entrada del teclado.
Nota: Ubuntu (y la mayoría de las otras distribuciones basadas en Debian) agrega automáticamente el
~ / bin directorio a la variable PATH si el directorio ~ / bin existe cuando se ejecuta el archivo .bashrc del usuario. Entonces, en los sistemas Ubuntu, si creamos el directorio ~ / bin y luego salimos y volvemos a iniciar sesión, todo funciona.