GNU/Linux >> Tutoriales Linux >  >> Linux

La diferencia entre '$ . Foo' y '$ ./foo'??

Esta pregunta ya tiene respuestas aquí :¿Cuál es la diferencia entre obtener ('.' o 'fuente') y ejecutar un archivo en bash?

(5 respuestas)
Cerrado hace 6 años.

t es un script simple
¿Qué es diferente entre los dos casos a continuación:

$ .  t

y

$ ./t

Respuesta aceptada:

. t no abrirá un nuevo shell para ejecutar t, por lo que todas las variables creadas o modificadas permanecerán después de la ejecución. Se buscará en $PATH, por lo que si desea ejecutar t desde la ruta en la que se encuentra ahora, el comando debería haber sido . ./t

./t ejecutará t, que se encuentra en la ruta en la que estamos ahora, generando un shell para su ejecución.

Para aclarar un poco más. Supongamos que t contiene:

#!/bin/bash 
data=hello 

Después ejecutas ./t puedes echo $data desde la línea de comando y no obtendrá nada, pero si ejecuta . ./t y ejecuta echo $data recibirás un saludo en tu pantalla.


Linux
  1. Linux:¿Diferencia entre /dev/console, /dev/tty y /dev/tty0?

  2. ¿La diferencia entre [[ $a ==Z* ]] y [ $a ==Z* ]?

  3. ¿Cuál es la diferencia entre /sbin/nologin y /bin/false?

  4. ¿La diferencia entre 'env' y 'printenv'?

  5. Diferencia entre /bin y /usr/bin

¿Cuál es la diferencia entre InnoDB y MyISAM?

¿Cuál es la diferencia entre Linux y Unix?

¿La diferencia entre ~/.profile y ~/.bash_profile?

¿La diferencia entre Nss y Pam?

Diferencia entre /etc/crontab y crontab -e

¿Cuál es la diferencia entre ls y l?