title: Is there a way to expand aliases in a non-interactive sh shell?
body: <p>I have a collection of aliases defined in <code>~/.aliases</code> which I would like to make available to <code>sh</code> even when it is run non-interactively.  My system has been setup in the typical way so that <code>sh</code> is a symlink to <code>bash</code>.</p>
  
  <p>When bash is run non-interactively as <code>bash</code>, this could by using <code>shopt -s expand_aliases</code> together with setting <code>$ENV</code> or <code>$BASH_ENV</code> to (directly or indirectly) source <code>~/.aliases</code>.</p>
  
  <p>But when <code>bash</code> is invoked non-interactively as <code>sh</code>, it seems to ignore <code>$ENV</code> and all startup files, so I can't see a way to do it.  Any ideas?  Or is this just not possible?</p>