Este guia mergulhará profundamente nas diferenças e semelhanças entre o sh e as cascas de festa.
Shell linux
No Linux, um shell é um programa dedicado para interpretação de comando. Ele interpreta o idioma de comando e diz ao sistema para executar as tarefas descritas. Não faz parte do kernel, mas pode executar tarefas, como executar programas e criar arquivos.
A funcionalidade de uma concha é melhor compreendida com um exemplo. Abra o terminal em seu sistema e execute o seguinte comando:
$ data
Aqui, observamos o seguinte:
Conchas também podem vir com seus próprios idiomas. Bash Script, por exemplo, é potente em automatizar tarefas muito complexas e alcançar maravilhas.
Existem muitas conchas disponíveis para a plataforma Linux. Obviamente, o mais popular é a casca de bash. Aqui estão algumas conchas alternativas que vale a pena conferir:
The Bourne Shell (SH)
O Bourne Shell é o shell padrão da versão 7 Unix. Originalmente desenvolvido por Stephen Bourne no Bell Labs, foi um substituto para o Thompson Shell. O Bourne Shell começou sua jornada em 1979. Saiba mais sobre a história da concha de Bourne na Wikipedia.
Até hoje, o Bourne Shell está disponível em quase todos os sistemas Linux. A localização do binário é a seguinte:
$ que sh
Sistemas semelhantes a Unix continuam a ter Bourne Shell /usr/bin/sh. Pode não ser a concha Bourne, mas um link simbólico/duro para uma concha mais compatível. Você pode verificar isso executando o seguinte comando:
$ arquivo -h /bin /sh
O sh Shell também é o nome da linguagem de programação de comando. Este idioma é descrito pelo Posix Standard que todos os sistemas Unix e UNIX devem seguir. A concha de Bourne que discutimos até agora é uma implementação de sh.
O Bourne novamente Shell (Bash)
Agora, chegamos à concha moderna que todos conhecemos e amamos - The Bash Shell, também conhecida como “Bourne Again Shell.”A nomeação é um trocadilho indicando que substitui a concha de bourne.
Desenvolvido por Brian Fox para o projeto GNU, Bash é um shell Unix e uma linguagem de comando. Foi lançado pela primeira vez em 1989. Desde então, tem sido o shell de login padrão para a maioria dos distritos Linux. Saiba mais sobre a história da casca de batida na Wikipedia.
Bash é um superconjunto de sh, o que significa que ele incorpora características de sh e um pouco mais. Como idioma, a maioria dos comandos faz a mesma coisa que sh. No entanto, Bash não é uma concha compatível com Posix, mas um dialeto da linguagem da shell Posix. Bash pretende ser a implementação conformante da parte do IEEE Posix Shell and Tools da especificação IEEE POSIX (IEEE Standard 1003.1).
Verifique a localização do binário Bash Shell:
$ que bash
Diferenças entre Sh e Bash
Forneceu o contexto histórico, sh e o bash compartilhe mais semelhanças do que as diferenças, pois uma é uma melhor implementação do outro. Independentemente disso, aqui estão algumas diferenças perceptíveis de características que se deve saber.
Shell padrão
Na maioria dos sistemas modernos de hoje, Bash é o shell padrão.
Localização binária
Verifique a localização binária de ambas as conchas:
$ que sh
$ que bash
Recurso
Comparado com sh, Bash oferece muito mais flexibilidade e sintaxe que parecem uma linguagem de programação moderna. Aqui estão alguns recursos adicionais que o Bash oferece sobre sh:
Conformidade com Posix
Por padrão, Bash não é compatível com Posix, enquanto sh é. No entanto, podemos executar o Bash no modo compatível com Posix com o seguinte comando:
$ Bash -Posix
Se você estiver escrevendo um script de bash, mas precisar do padrão POSIX, use o código a seguir no início:
#!/BIN/BASH
SET -O POSIX
Aqui o definir O comando diz ao BASH para ativar o modo POSIX.
Fácil de usar
Bash oferece uma linguagem da linha de comando mais moderna em comparação com sh. Nesse sentido, você terá um tempo mais confortável usando o Bash.
Portabilidade
Comparado ao Bash, sh oferece melhor portabilidade.
Porque sh é compatível com Posix, qualquer shell que suporta POSIX poderá executar sh scripts. Por exemplo, Bash pode correr sh scripts no modo Posix.
Script
Quando você está escrevendo um script em Bash, o código só é garantido para ser compatível com o Bash.
Por outro lado, quando se espalhando sh, O código pode ser executado em qualquer shell. É porque sh define a linguagem de script de shell original.
Conclusão
Neste artigo, exploramos a história, semelhanças e diferenças entre sh e bash. Sh é o antecessor de Bash. Ambos estão disponíveis em todos os sistemas UNIX/Linux modernos. Enquanto Bash oferece uma experiência mais confortável e fácil de usar, sh Oferece compatibilidade, portabilidade e sintaxe/comportamento padronizado.
Você é novo no script de batida? Este tutorial de script de bash para iniciantes cobre tudo o que é necessário para escrever seus scripts de bash. Esperamos que você tenha achado este artigo útil. Confira outros artigos de dica do Linux para obter mais dicas e tutoriais.