PWB-skal
Originalförfattare | John Mashey |
---|---|
Utvecklare | AT&T Bell Laboratories |
Operativ system | Unix |
Tillgänglig i | engelsk |
Typ | Unix-skal |
PWB -skalet (även känt som Mashey-skalet ) var ett Unix-skal .
Historia
PWB-skalet var en modifierad (och generellt begränsad till att vara uppåtkompatibel) version av Thompson-skalet med ytterligare funktioner för att öka användbarheten för programmering. Den sköttes av John Mashey och flera andra (Dick Haight, Alan Glasser).
PWB/UNIX började med Research Unix 4:e upplagan i mitten av oktober 1973 och uppdaterades ofta under de närmaste åren, eftersom PWB-avdelningen spårade Research Unix- ändringar och lade till några funktioner. PWB-skalet släpptes i mitten av 1975 och förblev tillgängligt genom version 6 Unix -baserad PWB/UNIX. I version 7 Unix (1979) ersattes PWB-skalet av Bourne-skalet . PWB-skalet var standardskalet för PWB/UNIX , cirka 1975–78., men kördes inte på någon utgåva av Research Unix, eftersom det krävde ett nytt systemanrop udata(2) som låter login(1) ange inloggningsnamn, inloggningskatalog ( $s ) och TTY ( $t ) så sh(1) för att få dem.
Anmärkningsvärda funktioner
Flera funktioner introducerades i PWB-skalet som finns kvar i många senare skal. kommandona if och goto gjordes internt i skalet och utökades för att tillåta if - then - else - endif , och switch och while -konstruktioner introducerades, samt onintr för att ignorera avbrott eller fånga dem för att utföra rensning. Enkla variabler kunde användas, även om deras namn var begränsade till en bokstav och vissa bokstäver var reserverade för speciella ändamål, av vilka några är föregångare till miljövariablerna som finns i alla Unix -system från version 7 och framåt.
Till exempel är variabeln $s stamfadern till $HOME , som används för att undvika hårdkodade sökvägar. Variabeln $p är förfadern till $PATH , som låter användare söka efter kommandon i sina egna val av kataloger. Till skillnad från de flesta av dåtidens UNIX-system delades det ursprungliga PWB/UNIX-datorcentret av flera programmeringsgrupper som inte kunde ändra innehållet i /bin eller /usr/bin, utan ville skapa sina egna uppsättningar av delade kommandon. Dessutom förbättrades skalets kommandosökning för att tillåta skalprocedurer att anropas som binära kommandon, dvs om skalet hittade en icke-binär fil markerad som körbar, skulle den splittra ytterligare en skalinstans för att läsa den filen som ett skalskript. Sålunda kunde folk skriva kommandoargument istället för sh pathname/command-argument . Allt detta beteende paketerades som funktionen pexec , som är förfadern till execvp , för att tillåta vilket program som helst att anropa kommandon på samma sätt som skalet.
Tecknet $, som tidigare använts för att identifiera argument till ett skalskript , blev markören för att avleda en variabel och kunde användas för att infoga en variabels värde i en sträng inom dubbla citattecken . (Förutom senare skal kommer den här funktionen också senare att visas i programmeringsspråken Perl och PHP .)
Ättlingar
Dessa funktioner kunde inte övervinna bristerna i Thompson-skalet, och därför skrevs ett nytt skal från grunden av Stephen Bourne . Detta Bourne-skal var inkompatibelt med Thompson- och PWB-skalen, men inkluderade motsvarigheter till de flesta av PWB-skalets funktioner, men gjort från grunden, snarare än stegvis, med mycket diskussion mellan de olika deltagarna. Speciellt miljövariabler och relaterade maskiner designades av Stephen Bourne, John Mashey och Dennis Ritchie som en allmän mekanism för att ersätta de tidigare, mer begränsade funktionerna. Efter antagandet av Bourne-skalet som standardskal i version 7 Unix fasades användningen av PWB-skalet ut, även om det under ett tag fanns en intern Bell Labs-kurs som heter Bourne Shell Programmering för Mashey Shell Programmers . C -skalet , som utvecklades innan Bourne-skalet offentligt släpptes, ärvde också några av funktionerna i PWB-skalet. [ citat behövs ]
Se även
externa länkar
- The Traditional Bourne Shell Family: History and Development (Sven Mascheck)
- Manualsida för PWB-skalet, 31 maj 1977
- Artikel av Mashey om PWB-skalets utveckling och inflytande
- Använda ett kommandospråk som ett högnivåprogrammeringsspråk