Estoy creand ounos scripts en bash pero cuando estaba mirando ciertos libros de programación en entornos linux me encuentro con que bash no es sino un avance de sh o shell así que me gustaría que alguien me aclarase cuáles son las verdaderas diferencias de estos dos, por llamarlos de alguna manera, lenguajes para realizar scripts en linux y pues saber si son complementarios o completamente excluyentes el uno respecto al otro.
Saludos