Hola chicos Soy nuevo en Linux.por qué usar un punto para ejecutar el perfil
En el siguiente comando, ¿por qué utiliza un punto para ejecutar el perfil?
. ~/.profile
Hola chicos Soy nuevo en Linux.por qué usar un punto para ejecutar el perfil
En el siguiente comando, ¿por qué utiliza un punto para ejecutar el perfil?
. ~/.profile
Como mencionó Noufal, .
es un alias de source
.
Al buscar el archivo, todos los comandos se ejecutan dentro del contexto de su sesión bash actual, lo que significa que todas las variables de entorno que exporta ahora estarán disponibles para usted.
Si ejecuta el script en lugar de la fuente, se ejecuta en una subcadena y las variables exportadas no se pasan a su sesión. En efecto, eso prácticamente frustra el objetivo de .profile
.
Como demostración, supongamos que tiene el archivo test.sh
:
#!/bin/bash
# in test.sh
print "exporting HELLO"
export HELLO="my name is Paul"
Si ejecutarlo:
[[email protected]]$ bash test.sh
exporting HELLO
[[email protected]]$ echo $HELLO
Nada se imprime desde $HELLO
no está definido en la sesión actual. Sin embargo, si la fuente él:
[[email protected]]$ . test.sh
exporting HELLO
[[email protected]]$ echo $HELLO
my name is Paul
Entonces $HELLO
estará disponible en su sesión actual.
Bastante difícil de decir sin más contexto, pero un uso es el archivo específico de Bash .bash_profile
para incluir el archivo más genérico (en lo que respecta a las conchas Bourne) .profile
, ya que cuando Bash encuentra el primero, no carga el segundo por sí mismo.
Gran ejemplo, pero en este comando: cp /usr/local/1.txt. el punto does representa la fuente? o tiene otro significado en este contexto – mko
En ese contexto, el punto significa 'directorio actual'. Dot es un alias para fuente solo cuando se usa como comando. –
En general, el punto tiene 3 significados diferentes según el contexto. Ver http://www.linuxtopia.org/online_books/advanced_bash_scripting_guide/special-chars.html –