source all files in a directory from .bash_profile
Oneliner (only for bash/zsh):
source <(cat *)
I agree with Dennis above; your solution should work (although the semicolon after "done" shouldn't be necessary). However, you can also use a for loop
for f in /path/to/dir*; do
. $f
done
The command substitution of ls is not necessary, as in Dirk's answer. This is the mechanism used, for example, in /etc/bash_completion
to source other bash completion scripts in /etc/bash_completion.d
Wouldn't
for f in ~/.bash_profile_*; do source $f; done
be sufficient?
Edit: Extra layer of ls ~/.bash_*
simplified to direct bash globbing.