Right way to add paths to PATH in mojave
What you've laid out is the proper way to add additional directories to your user's $PATH.

Step 1 - ~/.bash_profile

To start make edits to your ~/.bash_profile adding whatever locations you'd like to have amended to your $PATH.

export PATH="/usr/local/opt/python/libexec/bin:$PATH"
export PATH="/usr/local/opt/openssl/bin:$PATH"
export PATH="/Applications/XAMPP/xamppfiles/bin:$PATH"


Step 2 - source ~/.bash_profile

After making the above edits to this file you can either use the source command or the . notation to "reload" and changes made to this file in your current shell's context.

$ . ~/.bash_profile


-or-

$ source ~/.bash_profile


Step 3 - Evaluate changes

After making the edits and sourcing them you can confirm they had the effect you desired by echoing the contents of the $PATH varible.

$ echo $PATH | tr ':' '\n'
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
/opt/X11/bin
/Applications/Wireshark.app/Contents/MacOS
/usr/local/sbin
/Users/smingolelli/bin
/usr/local/opt/go/libexec/bin
/Applications/Visual Studio Code.app/Contents/Resources/app/bin
/Users/smingolelli/projects/kubebuilder/kubebuilder_1.0.5_darwin_amd64/bin/


The order matters, so directories that occur first will be searched first. If a binary lives in multiple places, the first place encountered will be the one that is used.

Also keep in mind that multiple sourcings of this file will have a negative effect of continuing to add the same changes, so it's often the case that you'll want to completely se the $PATH to a consistent known initial state and then amend it with these types of commands:

export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin"
export PATH="/some/new/dir:$PATH"


Using path_helper

macOS also includes a helper to assistance in the management of your $PATH. It's located here /usr/libexec/path_helper.

So instead of manually crafting your base $PATH as mentioned above you can instead use this snippet to get a known good starting point for your $PATH.

[ -x /usr/libexec/path_helper ] &amp;&amp; eval $(/usr/libexec/path_helper -s)


This will take care to initialize $PATH so any directories listed in /etc/paths and /etc/paths.d/ get added automatically.