Is it possible to coerce bash to reload the .profile file without logging out and back in again?
2 Answers
This should work for the current terminal:
. ~/.profile
.
is a bash
builtin and a synonym for source
, see man bash
:
. filename [arguments]
source filename [arguments]
Read and execute commands from filename in the current shell environment (…).
-
30
-
2
-
17@Matty: no, to make the changes visible to the whole graphical environment, you can only restart the session– enzotibAug 29, 2011 at 14:22
-
4The only issue with this is if you remove something from path it would not take effect until you restart– ArasSep 12, 2016 at 19:44
-
5@Aras makes an IMPORTANT POINT that deserves expansion: If something is removed from
~/.profile
, that change will not take effect after. ~/.profile
reload. For example, add a function to~/.profile
:function externalip () { curl http://ipecho.net/plain; echo; }
, then~/.profile
- IT WORKS. Now remove that function from~/.profile
, then. ~/.profile
again. The function is still available - only restarting (log out & in) will remove it.– SeamusMar 26, 2019 at 1:17
If you don't want to start a new shell but execute the script in the current shell, you source it:
source script_name.sh
source
= .
The Bash source
built-in is a synonym for the Bourne shell .
(dot) command.