AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 416760
Accepted
Weijun Zhou
Weijun Zhou
Asked: 2018-01-14 00:04:17 +0800 CST2018-01-14 00:04:17 +0800 CST 2018-01-14 00:04:17 +0800 CST

Como descobrir o número da versão do `dash` sem recorrer a sistemas de gerenciamento de pacotes?

  • 772

Tenho usado basha maior parte do tempo e acabei de começar a brincar com outras conchas. Comecei dashe tento descobrir o número da versão, mas o método usual gosta -vou $versionnão funciona. Eu posso entender que --versionnão vai funcionar, pois é específico do GNU. Pesquisei na net e encontrei as seguintes respostas, todas recorrendo ao sistema de gestão de pacotes.

Como saber o número da versão do traço? (o usuário está usando o CentOS, então a resposta depende do sistema Redhat Package Management)

e

Como encontrar a versão do shell traço no Ubuntu bin? (Isto é do site AskUbuntu, então a resposta depende da Advanced Package Tool)

Então, existe uma maneira de descobrir a versão dashsem recorrer ao sistema de gerenciamento de pacotes? Ficarei muito surpreso se não houver uma maneira simples, porque sempre acreditei que consultar a versão de um software é uma das funções mais fundamentais. Se esse for realmente o caso, ficaria feliz em ouvir alguma explicação, por exemplo, qual é a filosofia por trás desse design. Ficarei feliz em aceitar uma maneira simples de obter a dashversão sem recorrer ao sistema de gerenciamento de pacotes ou uma explicação convincente (perspectiva histórica também OK) sobre por que não posso fazer isso como a resposta aceita.

dash
  • 2 2 respostas
  • 1725 Views

2 respostas

  • Voted
  1. Best Answer
    JdeBP
    2018-01-14T03:35:50+08:002018-01-14T03:35:50+08:00

    Sempre acreditei que consultar a versão de um software é uma das funções mais fundamentais.

    Não é. É uma boa ideia que tivemos que aprender.

    Muitos anos atrás, não tínhamos um kernel, um gerenciador de pacotes e um repositório de pacotes. Temos um sistema operacional . Isso 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 da AT&T no início da década de 1980 nos deu o whatprograma e a ideia de cadeias de versão incorporadas colocadas em binários pelo sistema de controle de código-fonte. Por um tempo, era possível 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 versão 1 para DOS e para OS/2, juntamente com um programa de 16 bits WHAT.)

    Pode-se ainda hoje com alguns OpenBSD…

    $ o que /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 Os Regentes da Universidade da Califórnia.
    %
    … mas este não é mais o caso com a maioria dos outros programas no OpenBSD e FreeBSD, e certamente não com o shell Almquist no FreeBSD …

    % o que /bin/sh
    /bin/sh:
    %
    … nem com o shell Debian Almquist.

    % o que /bin/dash
    /bin/traço:
    %

    Em 1988, a Digital Research deu ao mundo a ideia de que as ferramentas tinham a /?opção de pedir ajuda, que a Microsoft copiou do DR-DOS para a versão 5.0 de seu MS-DOS em 1991 e da IBM para o OS/2 em 1992. Essa ideia, amplamente divulgado de boca em boca, no Fidonet e em revistas de informática na época como uma coisa muito boa, encontrou seu caminho nas convenções de codificação GNU como uma --helpopção, à qual foi adicionada uma --versionopção. Mas isso não era comum para ferramentas não-GNU no mundo Unix, nem mesmo na época em que o shell Almquist foi escrito em 1989; já que a convenção GNU nem apareceu até a década de 1990.

    Atualmente, o shell Bourne Again (publicado pela primeira vez em 1989) 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 hoje em dia suportam --version. Este mecanismo, no entanto, não foi adicionado ao shell Almquist, mesmo pelo pessoal do Debian quando eles fizeram seu shell Debian Almquist décadas depois.

    De dentro dos próprios shells, muitos shells (incluindo várias das variantes Korn, o shell Z, o shell Bourne Again e o shell TENEX C) têm uma variável shellname_VERSIONou versionshell que pode ser acessada no script de shell. Mais uma vez, a concha Almquist não.

    Leitura adicional

    • Mike Miller (2014-10-06). considere fornecer uma DASH_VERSIONvariável . Erro #764172 do Debian.
    • https://unix.stackexchange.com/a/257764/5132
    • 7
  2. user894319twitter
    2022-07-25T07:57:48+08:002022-07-25T07:57:48+08:00

    Use filecomo solução alternativa.

    file $(which dash):

    /usr/bin/dash: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=812a16ad1517b3d714e7b3bdb5470b2c82eb25ff, for GNU/Linux 3.2.0, stripped

    • 0

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    ssh Não é possível negociar: "nenhuma cifra correspondente encontrada", está rejeitando o cbc

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    Como descarregar o módulo do kernel 'nvidia-drm'?

    • 13 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add retorna com: "Erro ao conectar ao agente: nenhum arquivo ou diretório" 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve