Bash heeft twee verschillende modi: interactief en niet-interactief. Interactief betekent dat je er in kunt typen, en het dingen voor je kunt laten doen. Niet-interactieve shells interpreteren shell-scripts, vergelijkbaar met DOS batch-bestanden. Je geeft een lijst uit te voeren opdrachten en het voert ze uit, maar dan zonder je tussenkomst. Je ziet alle ingetypte opdrachten niet. Natuurlijk zal alle uitvoer ergens worden geregistreerd (de standaarduitvoer, of stdout, normaal gesproken het scherm of een logbestand). We zullen later wat meer ingaan op de niet-interactieve shell.