grep loses coloring when run from bash script
When you run a script, a new shell is spawned to do so. This new environment doesn't have the same settings as your default shell. As to how to get the coloring back, I'm not sure. You might try sourcing your profile at the start of the script:
#!/bin/bash
source $HOME/.bash_profile
or whichever file makes sense on your particular unix flavor (.profile, .bash_rc, .bashrc .bash_profile) to name a few.
You've probably defined grep
as an alias for grep --color=auto
in your .bashrc
, but that's not loaded by scripts. Use an explicit grep --color
in your script.