Rechargez le fichier .profile de bash sans vous déconnecter, puis vous reconnectez

81

Est-il possible de contraindre bash à recharger le fichier .profile sans se déconnecter et se reconnecter?

Matty
la source

Réponses:

102

Cela devrait fonctionner pour le terminal actuel:

. ~/.profile

.est un bashconstruit et un synonyme pour source, voir man bash:

. filename [ arguments ]
source filename [ arguments ]
     Lit et exécute les commandes de filename dans l'environnement shell actuel (…).

Lukas Stejskal
la source
18
Il ne sera efficace que dans le terminal actuel.
enzotib
@enzotib Est-il possible de contourner ce problème?
Matty
14
@Matty: non, pour que les modifications soient visibles dans tout l'environnement graphique, vous ne pouvez que redémarrer la session
enzotib
2
Le seul problème avec ceci est que si vous supprimez quelque chose du chemin il ne prendrait effet qu'après avoir redémarré
Aras
1
@Aras fait un point important qui mérite l' expansion: Si quelque chose est retiré de ~/.profile, que le changement ne prendra effet après . ~/.profilereload. Par exemple, ajouter une fonction à ~/.profile: function externalip () { curl http://ipecho.net/plain; echo; }, puis ~/.profile- il fonctionne. Maintenant, supprimez cette fonction de ~/.profile, puis à . ~/.profilenouveau. La fonction est toujours disponible - seul le redémarrage (déconnexion et entrée) la supprimera.
Seamus
13

Si vous ne voulez pas démarrer un nouveau shell mais exécuter le script dans le shell actuel, vous le sourcez:

source script_name.sh

source = .

Le Bash sourceintégré est un synonyme de la commande Bourne Shell .(point).

courtoisie - tldp.org

Amey Jah
la source