Hvad er Bourne Shell?
Bourne shell er et lille program, der kører på Unix® og LINUX® operativsystemer og giver en grænseflade til at udføre programmer på systemet. Det omtales ofte som en kommandolinjegrænseflade eller kommandotolk, da det ikke giver nogen grafisk brugergrænseflade (GUI) til brugeren. Kommandoer og eventuelle nødvendige parametre, der skal udføres, indtastes i shell. Bourne-shell er også et scriptingsprog, der giver brugerne mulighed for at oprette og udføre script-filer, der kan behandle data gennem flere programmer ved hjælp af en enkelt kommando. På Unix®-lignende systemer er programmet simpelthen kendt som "sh."
De første sådanne skaller til Unix®-systemer blev kendt som Thompson-skallen, oprettet af Ken Thompson, en af de oprindelige skabere af Unix®-operativsystemet. Thompson-skallen var begrænset til kommandotolkning, og et antal yderligere funktioner måtte udføres som eksterne operationer. Senere oprettede Stephen Bourne Bourne-skallen til at erstatte Thompson-skallen og tilføjede et antal nye funktioner i selve skallen såvel som skalets skriftsprog.
I virkeligheden var Bourne-skallen planlagt som et skriftsprog fra get-go. Mens det stadig var kommandolinjegrænsefladen for Unix® version syv, åbnede det også muligheden for brugere at udvikle shell-scripts, der ville forbinde kommandoer sammen for at behandle data. Ved hjælp af denne programmering kunne brugeren etablere variabler til indfangning af kendte eller ukendte data fra input eller output og manipulere behandlingen af disse data ved hjælp af betingede udsagn i scriptet via en teknik kaldet kontrolstrøm.
Dette var også den første skal, der implementerede en funktion kendt som signalhåndtering. Gennem Bourne-skallen kan en bruger sende en bestemt type signal til en proces, der allerede kører på computeren, og instruere denne proces til at gøre noget andet. Mange af disse er måder at stoppe en proces, der udføres og producere en slags output, der kan bruges til fejlsøgning, skønt andre eksisterer for midlertidigt at stoppe en proces, genoptage osv.
Evnen til direkte at kontrollere filbeskrivelser var en anden først for Bourne-skallen. På et Unix®-lignende system har hvert kørende program en tabel, der viser filbeskrivelserne for alle åbne filer. Dette kan omfatte alt fra en simpelt tekstfil til et bibliotek eller endda kommunikationsstikkene, som processer bruger til at dele data med hinanden. For at en bruger skal have kontrol over filbeskrivelserne på et system, der muliggør en hidtil uset kontrol over input og output for stort set alt på computeren.
Selvom Bourne-skallen tilbød sådan ekstra funktionalitet til brugerne, manglede det selvfølgelig funktioner, såsom evnen til at kontrollere processer interaktivt, etablere kommandoaliaser og bevare en historie. Senere begyndte imidlertid et antal efterkommere at dukke op, der tog de mest nyttige shell-funktioner, der var blevet udtænkt gennem årene og rullede dem op i nye skaller. Et almindeligt eksempel er Bourne-again shell eller Bash, som er almindeligt på mange LINUX®-systemer. Som et resultat er mange af disse efterkommere fuldt ud i stand til at udføre almindelige Bourne-shell-scripts, hvilket giver hvert Unix®-lignende system en vis implementering af det originale Bourne-shell på en eller anden måde. På mange LINUX®-systemer er dette simpelthen et link fra "sh" til "bash" eller en anden dygtig efterkommer.