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.
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?
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
Muitos aplicativos de limpeza estão disponíveis para Windows ao longo dos anos, mas hoje em…
Seu PlayStation 4 está congelado? Seus jogos favoritos continuam travando? Reiniciar seu PS4 pode resolver…
A popularidade das mensagens de texto significou aprender uma forma totalmente nova de comunicação. Você…
A foto dos "Pilares da Criação" tirada pelo Telescópio Espacial Hubble é uma das fotos…
O Proton Drive saiu de seu estágio beta há algumas semanas, mas o aplicativo real…
Para ver suas fotos mais de perto ou para uma edição precisa , você pode…