Punto (comando)


En un shell de Unix , el punto llamado comando de punto ( . ) es un comando que evalúa los 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 sourcecomando, [2] y este nombre también se ve en los shells POSIX "extendidos". [3] [4]

El comando de punto no debe confundirse con un archivo de punto , que es un archivo oculto con prefijo de punto o un directorio oculto . Tampoco debe confundirse con la ./scriptfilenotación para ejecutar comandos, que es simplemente una ruta relativa que apunta al directorio actual (anotada en Unix como un carácter '.', y normalmente fuera de la variable Path ).

El nombre de archivo es el primer argumento del comando punto . Cuando este argumento no contiene una barra inclinada , 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 fuente no tiene que ser ejecutable . De lo contrario, el nombre del archivo se considera como una ruta simple al archivo. [1]

En varios shells "extendidos", incluidos 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 $0será el $0del contexto actual.

Dado que la ejecución del archivo de origen se realiza en el contexto de invocación, el entorno [nota 1] cambiado se aplica al proceso actual o al shell actual. Esto es muy diferente de los scripts ejecutados directamente por shebang o como sh foo.sh, que se ejecutan en un nuevo espacio de proceso separado , con un entorno separado.

Por lo tanto, el comando de punto se puede usar para dividir un guión grande en partes más pequeñas, lo que podría permitir un diseño modular . El shell también suele realizar el abastecimiento en el inicio de la sesión para archivos de perfil de usuario como .bashrcy .profile.