nagłówki skryptów powłoki (#! / bin / sh vs #! / bin / csh)

Dlaczego wszystkie pliki skryptów zaczynają się od

#!/bin/sh

lub z

#!/bin/csh

Czy to jest wymagane? Jaki jest tego cel? A jaka jest różnica między nimi?