Necesito encontrar ayuda para el comando de puntos .
como en . ./my_script.sh
(me refiero al primer punto).
Ya he tratado de encontrar una página de manual usando man .
y man \.
. ¿Cómo puedo mostrar una página de manual en la que se explica el uso del comando .
?
help .
dot
. Consulte la especificación formal en pubs.opengroup.org/onlinepubs/009696699/utilities/dot.html.
es un comando, específicamente un shell incorporado. En Bash es equivalente asource
..
es POSIX, no solo bash. Por ejemplo, también está en zsh y ksh.Respuestas:
En primer lugar, debe invocar
type .
, probablemente obtendrá algo como:Los componentes integrados son parte de su caparazón, no tienen sus propias páginas de manual. Sin embargo, puede parecer que algunos de ellos los tienen, por ejemplo,
echo
está integrado en Bash, pero lo más probable es que haya un ejecutable separado como/bin/echo
en su sistema y en este caso seman echo
refiere a este último . Estos dosecho
s probablemente no son estrictamente equivalentes.Su caparazón puede proporcionar información sobre cualquier builtin a través de
help
builtin; intentehelp help
,help type
y finalmente:Las incorporaciones también pueden aparecer en la página del manual de su shell. Por ejemplo (en mi Debian) los componentes internos de Bash están cubiertos directamente
man bash
, pero para los componentes internos de Zshman zsh
me dice que corraman zshbuiltins
. En general, los depósitos pueden explicar o no sus componentes incorporados.fuente
.
es un shell incorporado y esto debe marcarse como respuesta porque OP preguntahow to find help for . in *nix ?
.type .
para demostrar que algunos comandos son componentes integrados de shell.bash-builtins(1)
página del manual, que tiene un tamaño más conveniente.. --help
worksIntente usar
man sh
oman bash
o la página man para cualquier shell que esté usando. (Tal vezman $SHELL
)Esto oficialmente no se llama el comando "punto", sino el
source
comando. Buscar la palabrasource
puede ser útil.por ejemplo, bash man page (busca "cada comando incorporado") y encontrarás rápidamente la documentación.
En cuanto a explicar el uso, puedo hacer eso aquí mismo. Me referiré a esto como el
source
comando, reconociendo que se puede abreviar a solo un período cuando está usando algunos shells, y con algunos shells ese comando podría ser necesario (porque el punto puede ser reconocido pero la palabra completasource
no puede ser).Si usas el
source
comando, su shell leerá cada línea del archivo de script e intentará ejecutarlo. Necesita permisos de "lectura" en el archivo. (No importa si tiene permisos de "ejecución"). Si modifica una variable, es probable que afecte a su shell actual.Si, por otro lado, solo intenta ejecutar el archivo, su shell le pedirá al sistema operativo que se encargue de esta solicitud. Esto requerirá permisos de "ejecución". (En algunos sistemas, como OpenBSD, no necesitará permisos de "lectura" para esto. En otros sistemas, incluidas muchas variaciones de Unix, lo necesitará). Es posible que el archivo deba comenzar con un encabezado apropiado (por ejemplo,
#!/bin/sh
) el sistema reconoce que se trata de un archivo de script. El sistema operativo ejecutará una copia del shell solicitado y le indicará a ese shell que ejecute el contenido del script. Si se cambia el entorno de shell (por ejemplo, una variable obtiene un nuevo valor, se cambia el directorio de trabajo (concd
), se redirige un descriptor de archivo (conexec
), etc.), afectará solo al subconjunto que se llamó para el script y no puede modificar el entorno en el shell principal que llamó al archivo de script.fuente
source
en bash. En la especificación POSIX, se llama "el comando punto" (y elsource
alias no es compatible).man bash
y luego ¿qué/.
? No muy útil/source
sería útil, pero para eso necesitarías saber eso.
ysource
son lo mismo..
y podría sersource
, pero como ya se mencionó @CharlesDuffy, siempre está.
en cualquier shell compatible con POSIX y solo tiene el aliassource
en una conchaNadie más lo ha mencionado, ya que a menudo se olvida.
Tu pista más grande vendría del comando útil
whatis
.EDITAR:
Algunas personas han señalado en los comentarios que esto no está en algunas distribuciones, tal vez es un paquete instalable o habilitado de alguna manera, lo tenía por defecto en gentoo;)
Incluye el maravilloso cuál, que le dice qué ejecutable se llama y whereis, que le proporciona todas las rutas a un ejecutable que nombre, y sus páginas man (si existe en varias rutas).
fuente
whatis .
devuelveman: 0703-307 . is not found.
whatis .
no devuelve nada en Ubuntu 16.04whatis .
" dio ".: nothing appropriate.
" en OpenBSD, resultó en 47 líneas de salida. Para este ejemplo específico (usando "whatis .
" en Gentoo), los resultados pueden ser poco comunes (lo que significa que esta técnica generalmente no es tan útil para muchos otros escenarios de ejemplo).man source
le mostrará la explicación que necesita.El punto es el mismo que el comando de origen.
source
ejecuta el script en el shell actual en lugar de en un subshell (es la forma habitual).El uso de
source
las variables establecidas dentro del guión se conserva una vez que el guión ha finalizado.fuente
man source
funciona? No en mi Debian, de ahí la pregunta.source
ascendente; es más probable que algo lo haya hecho CentOS.man source
te daman bash_builtins
, lo que no explica nada, pero te remite abash(1)
man source
me dasource(3tcl)
...type command
y luego, si el comando está incorporado,help command
probablemente sea la forma correcta ...El
.
es un sinónimo delsource
comando shell y, por lo tanto, en bash , su sintaxis se muestra mediante ...Funciona exactamente como los comandos
include
yimport
en otros idiomas, ya que lee el archivo de destino y lo interpreta como si fuera parte del script actual. Por lo tanto, ese archivo se ejecutará en su totalidad antes de los comandos en el resto del script actual.Por lo general, debe estar al comienzo del script actual y se usa con mayor frecuencia para cargar variables y / o definiciones de funciones.
fuente