2.3. Bourne shell

Bourne shell er den oprindelige unixshell som på alle unixsystemer er installeret som /bin/sh, som i dag er defineret af Single Unix Specification version 3 (SUSv3, tidligere POSIX).

Der er flere forskellige shells der implementerer bourne shell. På linuxmaskiner vil /bin/sh sædvanligvis være et link til bash (Bourne Again Shell) der når den bliver kaldt som sh køre i en speciel kompatibilitetsmode. Men også ksh (Korn Shell) og zsh implementerer bourne shell, dog med hver deres små udvidelser.

Shellscripts bliver for det meste brugt til at binde andre programmer sammen med. Ud over Bourne shell findes også chs og batch-filer i MS-DOS er egentlig også shellscripts.

De to hovedfordele ved at bruge Bourne shell er:

Medmindre man har meget gode grunde til det, bør man ikke skrive programmer der skal deles med andre, i andre kommandofortolkersprog end Bourne shell. Andre kommandofortolkersprog giver i nogle tilfælde mulighed for at løse opgaver en smule mere elegant, men det er sjældent at det opvejer fordelen ved at det er Bourne shell man kan regne med findes på stort set alle styresystemer. Den primære eksistensberettigelse for bash, ksh og zsh er dog i deres egenskaber ved interaktiv brug, hvilket er uden for denne bogs emner.

De egenskaber der gør sproget nyttigt er:

Desuden forøger man sin effektivitet ved brug af komandolinjen ved at kunne det bagvedliggende scriptingsprog

Bourne shell er så integreret i Unix at sproget bliver gennemgået som et selvstændigt afsnit i Friheden til at lære Unix.

2.3.1. Brug af Bourne shell

Bourne scripts gemmes normalt i filer. Disse skal så som første linje hedde #! /bin/sh. Følgende er et eksempel på et script


#! /bin/sh

while read p; do 
  echo p
  if [ -z "$p" ] ; then
    exit 0
  fi
done

Bourne scirpts kan også skrives direkte på komandolinjen:


[tyge@hven ~]$ for i in foo bar baz; do echo $i; done
foo
bar
baz
[tyge@hven ~]$