GNU/Linux >> Tutoriels Linux >  >> Linux

La différence entre '$ . Foo' Et '$ ./foo' ? ?

Cette question a déjà des réponses ici :Quelle est la différence entre le sourcing (‘.’ ou ‘source’) et l’exécution d’un fichier en bash ?

(5 réponses)
Fermé il y a 6 ans.

t est un simple script
Quelle est la différence entre les deux cas ci-dessous :

$ .  t

et

$ ./t

Réponse acceptée :

. t n'ouvrira pas un nouveau shell pour exécuter t, donc toutes les variables créées ou modifiées resteront après l'exécution. t sera recherché dans $PATH, donc si vous vouliez exécuter t à partir du chemin où vous vous trouvez actuellement, la commande aurait dû être . ./t

./t exécutera t qui se trouve dans le chemin où nous générons actuellement un shell pour exécution.

Pour clarifier un peu plus. Supposons que t contienne :

#!/bin/bash 
data=hello 

Après vous exécutez ./t vous pouvez echo $data à partir de la ligne de commande et vous n'obtiendrez rien, mais si vous exécutez . ./t et exécutez echo $data vous recevrez un bonjour sur votre écran.


Linux
  1. Quelle est la différence entre InnoDB et MyISAM ?

  2. La Différence Entre [[ $a ==Z* ]] Et [ $a ==Z* ] ?

  3. Quelle est la différence entre /sbin/nologin et /bin/false ?

  4. La différence entre "env" et "printenv" ?

  5. Différence entre /bin et /usr/bin

Quelle est la différence entre Linux et Unix ?

La Différence Entre Nss Et Pam?

Différence entre /etc/crontab et crontab -e

Quelle est la différence entre ls et l ?

Quelle est la différence entre /tmp et /run ?

Quelle est la différence entre unlink et rm ?