I have always believed that querying the version of a software is one of the most fundamental functions.
Não é. É uma boa ideia ter que aprender.
Muitos anos atrás, não obtivemos um kernel, um gerenciador de pacotes e um repositório de pacotes. Nós temos um sistema operacional . tinha uma versão e, implicitamente, todos os programas componentes do sistema operacional estavam associados à versão do sistema operacional. Isso era tão verdadeiro para o BSD quanto para o PC-DOS.
O mundo AT & T no início da década de 1980 nos deu o programa what
e a idéia de seqüências de versões incorporadas colocadas em binários pelo sistema de controle de código-fonte. Por algum tempo, pode-se usar isso para descobrir as versões das coisas, embora muitas vezes fossem as versões de arquivos de origem individuais em um programa, e não para o programa como um todo. (Eu mesmo coloquei esse mecanismo em todos os meus Utilitários de Linha de Comando da versão 1 para DOS e para OS / 2, junto com um programa WHAT
de 16 bits.)
Ainda é possível hoje com alguns OpenBSD…
$ what /bin/sh /bin/sh PD KSH v5.2.14 99/07/13.2 $… e binários do FreeBSD…
% what /bin/tcsh /bin/tcsh: Copyright (c) 1991 The Regents of the University of California. %… mas este não é o caso com a maioria dos outros programas no OpenBSD e FreeBSD, e certamente não com o shell Almquist no FreeBSD…
% what /bin/sh /bin/sh: %… nem com o shell do Debian Almquist .
% what /bin/dash /bin/dash: %
Em 1988, a Digital Research deu ao mundo a ideia de que as ferramentas usavam a opção /?
para solicitar ajuda de opções, que a Microsoft copiou do DR-DOS para a versão 5.0 do MS-DOS em 1991 e IBM para o OS / 2 em 1992. Esta ideia, amplamente divulgada de boca em boca, na Fidonet, e em revistas de computador na época como algo muito bom, encontrou seu caminho nas convenções de codificação GNU como uma opção --help
, à qual foi adicionado um --version
opção. Mas isso não foi difundido para ferramentas não-GNU no mundo Unix, nem generalizado na época em que a concha de Almquist foi escrita em 1989; como a convenção GNU não apareceu até os anos 90.
O shell Bourne Again (publicado pela primeira vez em 1989) atualmente suporta --version
. Isso também foi adicionado ao shell MirBSD Korn (o shell Korn original foi publicado pela primeira vez em 1983, lembre-se), o shell TENEX C (1983) e o shell Z (1990), que também atualmente suportam --version
. Este mecanismo não foi, no entanto, adicionado ao shell do Almquist, nem mesmo pelo Debian, quando eles fizeram o shell Debian Almquist décadas mais tarde.
Dentro dos próprios shells, muitos shells (incluindo várias variantes do Korn, o shell Z, o shell Bourne Again e o shell TENEX C) possuem uma variável shell shellname_VERSION
ou version
que pode ser acessada em script de shell. Mais uma vez, a concha de Almquist não.
Leitura adicional
- Mike Miller (2014-10-06). considere o fornecimento de uma variável
DASH_VERSION
. Bug do Debian # 764172. - link