Categories: Tecnologia

Quando é melhor usar #! / Bin / bash em vez de #! / Bin / sh em um Shell Script?

Ao criar um novo script de shell, você quer ter certeza de que ele está livre de problemas o máximo possível, mas às vezes pode ser um pouco confuso saber qual é o melhor para você usar. Por falar nisso, a postagem de hoje de perguntas e respostas do superusuário tem a resposta para a pergunta de um leitor confuso.

A sessão de perguntas e respostas de hoje chega até nós como cortesia do SuperUser – uma subdivisão do Stack Exchange, um grupo de sites de perguntas e respostas voltado para a comunidade.

A questão

O leitor de superusuário Hendre quer saber quando é melhor usar #! / Bin / bash em vez de #! / Bin / sh em scripts de shell:

Quando é mais apropriado usar #! / Bin / bash em vez de #! / Bin / sh em um script de shell?

Quando é melhor usar #! / Bin / bash em vez de #! / Bin / sh em um script de shell?

A resposta

Grawity, contribuidor do SuperUser, tem a resposta para nós:

Em resumo:

  • Existem vários shells que implementam um superconjunto da especificação POSIX sh . Em sistemas diferentes, / bin / sh pode ser um link para ash, bash, dash, ksh, zsh, etc. Porém, sempre será compatível com sh, nunca com csh ou fish.
  • Contanto que você se atenha apenas aos recursos sh, você pode (e provavelmente deve) usar #! / Bin / sh e o script deve funcionar bem, não importa qual shell seja.
  • Se você começar a usar recursos específicos do bash (ou seja, arrays), você deve solicitar especificamente o bash porque, mesmo se / bin / sh já invocar o bash em seu sistema, ele pode não estar no sistema de todos e seu script não será executado lá. O mesmo se aplica a zsh e ksh, é claro.
  • Mesmo que o script seja apenas para uso pessoal, você pode notar que alguns sistemas operacionais mudam / bin / sh durante as atualizações. Por exemplo, no Debian costumava ser bash, mas mais tarde foi substituído por um traço mínimo. Scripts que usavam bashisms mas tinham #! / Bin / sh quebrou repentinamente.

Contudo:

  • Mesmo #! / Bin / bash não é correto. Em sistemas diferentes, o bash pode residir em / usr / bin , / usr / pkg / bin ou / usr / local / bin .
  • Uma opção mais confiável é #! / Usr / bin / env bash , que usa $ PATH . Embora a ferramenta env em si também não seja estritamente garantida, / usr / bin / env ainda funciona em mais sistemas do que / bin / bash .

Tem algo a acrescentar à explicação? Som desligado nos comentários. Quer ler mais respostas de outros usuários do Stack Exchange com experiência em tecnologia? Confira o tópico de discussão completo aqui .

Crédito da imagem: Wikipedia

maisroot

Recent Posts

O novo aplicativo “PC Manager” da Microsoft se parece muito com o CCleaner

Muitos aplicativos de limpeza estão disponíveis para Windows ao longo dos anos, mas hoje em…

1 ano ago

Como reiniciar um PS4

Seu PlayStation 4 está congelado? Seus jogos favoritos continuam travando? Reiniciar seu PS4 pode resolver…

1 ano ago

Veja por que as reticências são tão assustadoras ao enviar mensagens de texto…

A popularidade das mensagens de texto significou aprender uma forma totalmente nova de comunicação. Você…

1 ano ago

O telescópio James Webb acaba de capturar os “Pilares da Criação”

A foto dos "Pilares da Criação" tirada pelo Telescópio Espacial Hubble é uma das fotos…

1 ano ago

Você poderá baixar o Proton Drive mais cedo do que pensa

O Proton Drive saiu de seu estágio beta há algumas semanas, mas o aplicativo real…

1 ano ago

Como aumentar o zoom no Photoshop

Para ver suas fotos mais de perto ou para uma edição precisa , você pode…

1 ano ago