| Linux – Friheden til at programmere: Version 2.5.20050330 – 2020-12-31 | ||
|---|---|---|
| forrige | Kapitel 2. Vælg et sprog | næste |
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å[[program:sprog-csh|chs]]og batch-filer i MS-DOS er egentlig også shellscripts.
De to hovedfordele ved at bruge Bourne shell er: * At programmer skrevet i Bourne shell umiddelbart kan køres på alle
systemer der overholder SUSv3-standarden. * At Bourne shell som kommandofortolkersprog er velegnet til at binde større programmer sammen, så de løser en bestemt opgave.
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: * Andre kommandoer indgår naturligt som en integreret del af sproget
(grep, sort, cat, ...)
* Pipes og redirection gør det let at tage uddata fra kommandoer og
føre dem videre over i andre kommandoer eller gemme dem i filer.
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<code>#! /bin/sh
while read p; do
echo p if [ -z "$p" ] ; then exit 0 fi
done</code>
Bourne scirpts kan også skrives direkte på komandolinjen:
[tyge@hven ~]$for i in foo bar baz; do echo $i; donefoo bar baz[tyge@hven ~]$
