stringtranslate.com

Punto (comando)

En un shell Unix , el punto llamado comando punto ( . ) es un comando que evalúa los comandos en un archivo de computadora en el contexto de ejecución actual. [1] En el shell C , 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 punto no debe confundirse con un archivo punto , que es un archivo oculto con prefijo 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 Ruta ).

Argumentos

El nombre del archivo es el primer argumento del comando punto . Cuando este argumento no contiene una barra diagonal , 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 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 especifica ningún parámetro, 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.

Usos

Dado que la ejecución del archivo fuente se realiza en el contexto de invocación, el entorno [nota 1] cambió dentro de la aplicación 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 espacio de proceso nuevo e independiente, con un entorno independiente.

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

source

sourcees 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 fuente se puede abreviar simplemente como 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 Bash deben ejecutarse usando la source your-scriptsintaxis en lugar de ejecutarse como un comando ejecutable, por ejemplo, si contienen un comando de cambio de directorio ( cd) y el usuario desea dejarlos en ese directorio después de que se complete el script, o si contienen un comando de exportación. comando y el usuario quiere modificar el entorno del shell actual. Otra situación de uso es cuando un archivo de script 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

  1. ^ Consulte Entorno de ejecución de Shell en POSIX.1:2013.

Referencias

  1. ^ ab "POSIX.1:2013 Lenguaje de comandos de Shell § punto" . Consultado el 23 de mayo de 2016 .
  2. ^ "Página de manual de Csh#comando" . Consultado el 23 de mayo de 2016 .
  3. ^ ab "Manual de referencia de Bash § Incorporaciones de Bourne Shell" . Consultado el 23 de mayo de 2016 .
  4. ^ ab "Comandos integrados de ZSH Shell" . Consultado el 23 de mayo de 2016 .
  5. ^ "página de manual de ksh". Oráculo . Consultado el 23 de mayo de 2016 . + . nombre [arg...]
  6. ^ "BASH BUILTIN COMMANDS", la página de manual de Linux para "fuente" en Bash-3.0. 20 de abril de 2004

Enlaces externos