Between the two, I would put http://tldp.org/LDP/abs/html/ ... and that
probably is too much already! Reading the reference is no fun.
Be aware that GNU Bash extends a base that any shell implements. To write a
portable script that can run on any shell (in particular faster shells such
as dash, which minimally implements the standard).
If you are particularly interested in the text processing command (essential
if you work with data in text files), you can read my slides:
http://dcc.ufmg.br/~lcerf/slides/mda3.pdf (Simple but powerful
text-processing commands: less, head, tail, cat, tr, wc, cut, paste, comm,
join, sort, uniq);
http://dcc.ufmg.br/~lcerf/slides/mda4.pdf (Selecting lines: grep)
http://dcc.ufmg.br/~lcerf/slides/mda5.pdf (sed: only the basics)
http://dcc.ufmg.br/~lcerf/slides/mda6.pdf (awk: far more complete)
http://dcc.ufmg.br/~lcerf/slides/mda7.pdf (A few words about efficiency)
The data for the exercises still are online along with the answers.