PWB shell - PWB shell

PWB shell
Autor (es) original (is) John Mashey
Desenvolvedor (s) AT&T Bell Laboratories
Sistema operacional Unix
Disponível em inglês
Modelo Shell Unix

O shell PWB (também conhecido como shell Mashey ) era um shell Unix .

História

O shell PWB foi uma versão modificada (e geralmente restrita para ser compatível com versões anteriores) do shell Thompson com recursos adicionais para aumentar a usabilidade para programação. Foi mantido por John Mashey e vários outros (Dick Haight, Alan Glasser).

O PWB / UNIX começou com Research Unix 4ª Edição em meados de outubro de 1973 e foi atualizado com frequência nos anos seguintes, conforme o departamento de PWB rastreava as alterações do Research Unix e adicionava alguns recursos. O shell PWB foi lançado em meados de 1975 e permaneceu disponível através da Versão 6 PWB / UNIX baseado em Unix. Na versão 7 do Unix (1979), o shell PWB foi substituído pelo shell Bourne . O shell PWB era o shell padrão para PWB / UNIX , por volta de 1975-78., Mas não rodava em nenhuma edição do Research Unix , pois exigia uma nova chamada de sistema udata (2) que permitia login (1) definir o nome de login, diretório de login ( $ s ) e TTY ( $ t ) so sh (1) para obtê-los.

Características notáveis

Vários recursos foram introduzidos no shell PWB que permanecem em muitos shells posteriores. Os comandos if e goto foram feitos internos ao shell e estendidos para permitir que as construções if - then - else - endif e switch e while fossem introduzidas, bem como onintr para ignorar interrupções ou capturá-las para realizar a limpeza. Variáveis ​​simples podiam ser usadas, embora seus nomes fossem limitados a uma letra e algumas letras fossem reservadas para propósitos especiais, dos quais alguns são os precursores das variáveis ​​de ambiente encontradas em todos os sistemas Unix da versão 7 em diante.

Por exemplo, a variável $ s era o ancestral de $ HOME , usada para evitar nomes de caminho de codificação permanente. A variável $ p era o ancestral de $ PATH , que permitia aos usuários pesquisar comandos em seus próprios diretórios de escolha. Ao contrário da maioria dos sistemas UNIX da época, o centro de computador PWB / UNIX original era compartilhado por vários grupos de programação que não podiam alterar o conteúdo de / bin ou / usr / bin, mas queriam criar seus próprios conjuntos de comandos compartilhados. Além disso, a pesquisa de comandos do shell foi aprimorada para permitir que procedimentos de shell sejam chamados como comandos binários, ou seja, se o shell encontrar um arquivo não binário marcado como executável, ele bifurcará outra instância de shell para ler esse arquivo como um script de shell. Assim, as pessoas podem digitar argumentos de comando em vez de sh nomes de caminho / argumentos de comando . Todo esse comportamento foi empacotado como a função pexec , que foi o ancestral do execvp , para permitir que qualquer programa invoque comandos da mesma forma que o shell.

O caractere $, usado anteriormente para identificar argumentos para um script de shell , tornou-se o marcador para desreferenciar uma variável e poderia ser usado para inserir o valor de uma variável em uma string entre aspas duplas . (Além de shells posteriores, esse recurso também apareceria posteriormente nas linguagens de programação Perl e PHP .)

Descendentes

Esses recursos não conseguiam superar as deficiências do shell Thompson e, portanto, um novo shell foi escrito do zero por Stephen Bourne . Este shell Bourne era incompatível com os shells Thompson e PWB, mas incluía equivalentes da maioria dos recursos do shell PWB, mas feito do zero, em vez de incrementalmente, com muita discussão entre os vários participantes. Em particular, as variáveis ​​de ambiente e máquinas relacionadas foram projetadas por Stephen Bourne, John Mashey e Dennis Ritchie como um mecanismo geral para substituir os recursos anteriores mais limitados. Após a adoção do shell Bourne como o shell padrão na versão 7 do Unix , o uso do shell PWB foi descontinuado, embora por um tempo, houve um curso interno do Bell Labs chamado Bourne Shell Programming for Mashey Shell Programmers . (O shell C , desenvolvido antes do lançamento público do shell Bourne, também herdou alguns dos recursos do shell PWB.)

Veja também

Referências

links externos