Fiz algumas pesquisas sobre os arquivos com bash
e sh
extensões. A maioria das pessoas e recursos dizem que se um arquivo tem bash
extensão, então ele contém bash
scripts. Da mesma forma, o arquivo com sh
extensões contém sh
scripts.
No entanto, não consigo encontrar as diferenças entre os scripts bash e sh. Existem alguns cursos e artigos que visam ensinar as pessoas a escrever scripts em shell, e todos eles têm o título shell scripting
.
Neste ponto, a qual shell scripting corresponde?
Bash Scripting ou script Sh.
O que eu tento entender é qual é a diferença entre scripts bash e sh.
Nomes de arquivos em POSIXland não possuem "extensões". A
.
em um nome de arquivo não é diferente de qualquer outro caractere e não tem nenhum significado específico além daqueles que podem ser atribuídos a eles por almôndegas como nós.Pode-se esperar que qualquer arquivo com um nome terminado em
.bash
seja um script destinado a ser executado através dobash
shell, mas não há garantia disso.De fato, é bastante comum dar a todos os scripts de shell um sufixo
.sh
independentemente de qual interpretador se destina a seu uso, pois a linha shebang deve especificar adequadamente qual shell deve ser usado para executar tal arquivo.sh
ebash
são duas conchas diferentes, mas relacionadas; dois entre muitos outros comoksh
,csh
,zsh
,fish
,ash
,dash
, e ainda mais outros.Cada shell tem sua própria sintaxe, capacidades, maneirismos e pontos fracos; alguns shells são amplamente compatíveis uns com os outros (geralmente qualquer script escrito para
sh
também pode ser executado embash
muitos outros shells), mas alguns não são.O único problema significativo que encontro no dia-a-dia entre
bash
esh
é o operador de comparação. Nobash
operador double-equals==
pode ser usado para comparação de strings:Mas
sh
isso é um erro de sintaxe, pois espera um igual a um.Não estou dizendo que essa é a única diferença, mas esse é um problema comumente encontrado.