4 ms·
.bashrc would get executed when you run something in cron. Cron runs non-interactive shell sessions.
by robohoe 7y ago
.bashrc would get executed when you run something in cron. Cron runs non-interactive shell sessions.
- deleted 7y ago[deleted]
- roryrjb 7y agoI tested this and this is not the case. My .bashrc does a lot of things such as custom completions that are expensive that I would not want run by anything else other than an interactive shell. It also has return at the end so if anything I don't know about adds stuff to it, it won't get executed. This would break other scripts loading .bashrc as well. So as far as I can see this is false.
- tremon 7y agoFrom the manual: When an interactive shell that is not a login shell is started, bash reads and executes commands from /etc/bash.bashrc and ~/.bashrc, if these files exist. This may be inhibited by using the --norc option. So interactive, non-login shells only. But also: When invoked as an interactive shell with the name sh , bash looks for the variable ENV, expands its value if it is defined, and uses the expanded value as the name of a file to read and execute. [A] shell invoked as sh does not attempt to read and execute commands from any other startup files So only when invoked as bash, not as sh.
- roryrjb 7y agoThank you, very helpful. That explains why I have to have my .bash_profile source .bashrc for use with tmux, as it executes bash as a login shell. I knew I had to have this but wasn't 100% on why until now. Note to self, RTFM!