En un shell de Unix , el punto final llamado comando dot ( . ) Es un comando que evalúa comandos en un archivo de computadora en el contexto de ejecución actual. [1] En C Shell , se proporciona una funcionalidad similar a la del source
comando, [2] y este nombre también se ve en los shells POSIX "extendidos". [3] [4]
El comando dot no debe confundirse con un archivo dot , que es un archivo o directorio oculto con prefijo de punto . Tampoco debe confundirse con la ./scriptfile
notación para ejecutar comandos, que es simplemente una ruta relativa que apunta al directorio actual (anotado en Unix como un carácter '.' Y generalmente fuera de la variable Ruta ).
Argumentos
El nombre del archivo es el primer argumento del comando dot . Cuando este argumento no contiene una barra , el shell buscará el archivo en todos los directorios definidos en la variable de entorno PATH . A diferencia de los comandos normales que también se encuentran en PATH, el archivo a la fuente no tiene que ser ejecutable . De lo contrario, el nombre del archivo se considera una ruta simple al archivo. [1]
En varios shells "extendidos" que incluyen bash, [3] zsh [4] y ksh, [5] se pueden especificar parámetros en un segundo argumento. Si no se especifican parámetros, el archivo de origen recibirá el conjunto de parámetros posicionales disponibles en el contexto actual. Si se especifican parámetros, el archivo de origen recibirá solo los parámetros especificados. En cualquier caso, el parámetro $0
será el $0
del contexto actual.
Usos
Dado que la ejecución del archivo fuente se realiza en el contexto de invocación, el entorno [nota 1] cambiado dentro de aplicar al proceso actual o al shell actual. Esto es muy diferente de los scripts ejecutados directamente por shebang o as sh foo.sh
, que se ejecutan en un nuevo espacio de proceso separado , con un entorno separado.
Por lo tanto, el comando dot se puede utilizar para dividir un script grande en partes más pequeñas, lo que potencialmente permite el diseño modular . El shell también suele realizar el abastecimiento al iniciar la sesión para archivos de perfil de usuario como .bashrc
y .profile
.
Fuente
source
es un comando integrado en el shell que evalúa el archivo que sigue al comando, como una lista de comandos, ejecutados en el contexto actual. [6] Con frecuencia, el "contexto actual" es una ventana de terminal en la que el usuario escribe comandos durante una sesión interactiva.
El comando de origen se puede abreviar como solo un punto ( .
) en Bash y shells similares a POSIX. Sin embargo, esto no es aceptable en el shell C , donde apareció el comando por primera vez.
Algunos scripts de Bash deben ejecutarse utilizando la source your-script
sintaxis en lugar de ejecutarse como un comando ejecutable, por ejemplo, si contienen un comando de cambio de directorio ( cd
) y el usuario tiene la intención de que se dejen en ese directorio después de que el script esté completo, o si contienen una exportación comando y el usuario quiere modificar el entorno del shell actual. Otra situación de uso es cuando un archivo de secuencia de comandos no tiene el permiso de "ejecución" . Pasar el nombre del archivo del script al shell deseado ejecutará el script en un subshell , no en el contexto actual.
Notas
- ^ Consulte Entorno de ejecución de Shell en POSIX.1: 2013.
Referencias
- ^ a b "POSIX.1: 2013 Shell Command Language § punto" . Consultado el 23 de mayo de 2016 .
- ^ "Comando # de página de manual de Csh" . Consultado el 23 de mayo de 2016 .
- ^ a b "Manual de referencia de Bash § Bourne Shell Builtins" . Consultado el 23 de mayo de 2016 .
- ^ a b "Comandos integrados de ZSH Shell" . Consultado el 23 de mayo de 2016 .
- ^ "página de manual de ksh" . Oracle . Consultado el 23 de mayo de 2016 .
+. nombre [arg ...]
- ^ "BASH BUILTIN COMMANDS", la página de manual de Linux (GNU) para "fuente" en Bash-3.0. 20 de abril de 2004
enlaces externos
- Los tres usos diferentes del punto en Unix explicados