Skalet sh

Översikt, 10: Funktioner och inbyggda kommandon

Det finns en liten mängd kommandon som av diverse anledningar finns inbyggda i skalet istället för att vara separata program. I de flesta fall är anledningen att kommandot inte skulle gå fungera om det vore separat kommando, eftersom det förändrar något inne i skalet. Förutom kommandona "set" och "export" som redan nämts i samband med variabler, och som används för att sätta och exportera värdet av variabler, så finns bland annat dessa:

unset variabel
Tar bort en variabel, så att det ser ut som om den aldrig varit satt till något värde. Observera att detta inte är samma sak som att tilldela variabeln värdet 0 eller tomma strängen.
cd katalog
Ändrar nuvarande arbetskatalog till katalog. Arbetskatalogen är den katalog som systemet tittar i när det leta efter filer som angivits med relativa namn. Filnamn är relativa om de inte är absoluta, och absoluta om de börjar med tecknet "/". Absoluta filer utgår från systemets rotkatalog.
exit returvärde
Avsluta skalet. Argumentet returvärde kan utelämnas, och antas då vara 0. Ger man kommando "exit" i sitt inloggningsskal innebär det att man loggas ut från systemet.
alias namn=definition
Skapar en förkortat kommando namn som är ekvivalent med angiven definition.
unalias namn
Tar bort det angivna förkortade kommandot.

Ett kraftfullare alternativ till alias är egendefinierade funktioner. Funktioner definieras på ett sätt som påminner lite om hur det kan se ut i programspråket C:

    funktionsnamn ()
    {
      definition
    }
med bland annat skillnaden att parentesparet efter funktionsnamnet inte får ha någonting emellan sig. Man kan alltså inte ge namn åt funktionens argument. Argumenten heter istället "$1" (första argumentet), "$2" (andra argumentet), och så vidare.

När funktionen är definierad kan den användas som ett vanligt kommando.