(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.