As much as I'm OCD about this sort of thing myself, I can't help thinking that this guy is trying to solve a problem that doesn't exist.<p>The biggest problem I have if just the effort of keeping all the environments unified on all the boxes I administrate. Because of this, these days I just don't bother with large and complicated custom shell environments - just a few aliases on my workstation and that's about it.<p>The crux of the matter is if time spent trying to keep your environment in sync across your infrastructure is greater than the time you save due to increased productivity - then it's really just a wasted exercise.<p>What I'd be more interested in is a way to have a .remote.bashrc running on my workstation that will then automatically set the environment for any servers I SSH into (thus removing the need for me to keep copies on each server).<p>Actually, that last idea should be pretty easy, I've just never thought about it until now....
This is way too complex. Just put everything in .bashrc and symlink .profile to .bashrc. Then if there's something you don't want executed in non-interactive mode in .bashrc, put it in an if statement.<p>Simple.