¿Cuál es el significado de un punto antes de un comando en el shell?

Pregunta:

Mientras sigo el tutorial de depuración de Android Eclipse, encuentro los siguientes comandos.

cd /path/to/android/root 
. build/envsetup.sh 
lunch 1    
make       
emulator

Mi problema es ¿qué significa el punto antes de build/envsetup.sh ?

Respuesta:

Un punto en ese contexto significa "obtener" el contenido de ese archivo en el shell actual. Con la source sí misma como un comando integrado de shell. Y la source y el operador de puntos son sinónimos.

Ejemplo

Digamos que tenía el siguiente contenido en un archivo sample.sh .

$ cat sample.sh 
echo "hi"
echo "bye?"

Ahora, cuando lo obtengo:

$ . sample.sh 
hi
bye?
$

Archivos como este se utilizan a menudo para incorporar comandos de configuración, como agregar cosas a las variables de entorno.

Ejemplos de

Digamos que tengo estos comandos en otro archivo, addvars.sh .

$ cat addvars.sh 
export VAR1="some var1 string"
export VAR2="some var2 string"

Tenga en cuenta que no tengo ninguna variable en el entorno de mi shell actual.

$ env | grep VAR
$

Ahora, cuando obtengo este archivo:

$ . addvars.sh 
$

Bien, no parece que haya hecho nada, pero cuando comprobamos las variables env nuevo:

$ env | grep VAR
VAR1=some var1 string
VAR2=some var2 string

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım