Vad är Bourne Shell?

Bourne-skalet är ett litet program som körs på Unix® och LINUX® operativsystem och ger ett gränssnitt för att köra program på systemet. Det kallas ofta för ett kommandoradsgränssnitt, eller kommandotolk, eftersom det inte ger användaren något grafiskt användargränssnitt (GUI). Kommandon och eventuella nödvändiga parametrar som ska köras skrivs in i skalet. Bourne-skalet är också ett skriptspråk som tillåter användare att skapa och exekvera skriptfiler som kan bearbeta data genom flera program med ett enda kommando. På Unix®-liknande system är programmet helt enkelt känt som ”sh.”

De första sådana skalen för Unix®-system var kända som Thompson-skalet, skapat av Ken Thompson, en av de ursprungliga skaparna av Unix®-operativsystemet. Thompson-skalet var begränsat till kommandotolkning och ett antal ytterligare funktioner måste utföras som externa operationer. Senare skapade Stephen Bourne Bourne-skalet för att ersätta Thompson-skalet, och lade till ett antal nya funktioner i själva skalet, såväl som skalets skriptspråk.

I verkligheten var Bourne-skalet planerat som ett manusspråk från början. Även om det fortfarande var kommandoradsgränssnittet för Unix® version sju, öppnade det också möjligheten för användare att utveckla skalskript som skulle länka samman kommandon för att bearbeta data. Genom att använda denna programmering kan användaren etablera variabler för att fånga känd eller okända data från inmatning eller utdata och manipulera behandlingen av dessa data genom att använda villkorliga uttalanden i skriptet via en teknik som kallas kontrollflöde.

Detta var också det första skalet som implementerade en funktion som kallas signalhantering. Genom Bourne-skalet kan en användare skicka en specifik typ av signal till en process som redan körs på datorn och instruera den processen att göra något annat. Många av dessa är sätt att stoppa en process som körs och producera någon sorts utdata som kan användas för felsökning, även om andra finns för att tillfälligt stoppa en process, återuppta och så vidare.

Möjligheten att direkt styra filbeskrivningar var ytterligare en första för Bourne-skalet. På ett Unix®-liknande system har alla program som körs en tabell som listar filbeskrivningarna för alla öppna filer. Detta kan inkludera allt från en enkel textfil till en katalog eller till och med kommunikationsuttagen som processer använder för att dela data med varandra. För en användare att ha kontroll över filbeskrivningarna på ett system tillät oöverträffad kontroll över input och output för praktiskt taget allt på datorn.

Naturligtvis, även om Bourne-skalet erbjöd sådan ytterligare funktionalitet för användare, saknades det funktioner som möjligheten att styra processer interaktivt, upprätta kommandoalias och behålla en historik. Senare började dock ett antal ättlingar dyka upp som tog de mest användbara skalfunktionerna som hade utformats under åren och rullade ihop dem till nya skal. Ett vanligt exempel är Bourne-again-skalet, eller Bash, som är vanligt på många LINUX®-system. Som ett resultat är många av dessa ättlingar fullt kapabla att köra vanliga Bourne-skalskript, vilket ger varje Unix®-liknande system en viss implementering av det ursprungliga Bourne-skalet på ett eller annat sätt. På många LINUX®-system är detta helt enkelt en länk från ”sh” till ”bash” eller någon annan kapabel ättling.