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 ett kommandoradgränssnitt eller kommandotolk, eftersom det inte ger något grafiskt användargränssnitt (GUI) för användaren. Kommandon och alla nödvändiga parametrar som ska köras skrivs in i skalet. Bourne-skalet är också ett skriptspråk, vilket gör det möjligt för användare att skapa och köra skriptfiler som kan behandla data genom flera program genom 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 lägger till ett antal nya funktioner i själva skalet, såväl som skalets skriptspråk.
I verkligheten planerades Bourne-skalet som ett manusspråk från get-go. Även om det fortfarande var kommandoradgränssnittet för Unix® version sju öppnade det också möjligheten för användare att utveckla skalskript som skulle länka kommandon tillsammans för att bearbeta data. Genom användning av denna programmering kan användaren etablera variabler för att fånga in kända eller okända data från inmatning eller utdata och manipulera behandlingen av dessa data genom användning av villkorade 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 processen att göra något annat. Många av dessa är sätt att stoppa en process som kör och producerar någon form av utdata som kan användas för felsökning, även om andra existerar för att tillfälligt stoppa en process, återuppta osv.
Förmågan att direkt kontrollera filbeskrivningar var en annan först för Bourne-skalet. På ett Unix®-liknande system har varje körande program en tabell som visar filbeskrivningarna för alla öppna filer. Detta kan inkludera allt från en enkel textfil till en katalog eller till och med kommunikationsuttag som processer använder för att dela data med varandra. För att en användare ska ha kontroll över filbeskrivningarna i ett system som tillåter oöverträffad kontroll över input och output för praktiskt taget allt på datorn.
Självklart, även om Bourne-skalet erbjöd sådan extra funktionalitet för användarna, saknade det naturligtvis funktioner som förmågan att kontrollera processer interaktivt, upprätta kommandot alias och behålla en historia. Senare började emellertid ett antal ättlingar att dyka upp som tog de mest användbara skalfunktionerna som hade utvecklats under åren och rullade dem upp 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 ut kapabla att utfö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 efterkommer.