Como posso descobrir se um script está escrito bash
ou sh
?
A primeira linha do script não é útil aqui, pois no Linux, os scripts do bash têm esta linha:
#!bin/sh
Na verdade, existem muitas distribuições onde o /bin/sh
bash (talvez /bin/sh
seja um link para /bin/bash
essas distribuições), e não o Bourne Shell. Portanto, se eu tentar executar um script escrito em bash, por exemplo, no FreeBSD, o resultado não será definido, pois /bin/sh
no FreeBSD é Bourne Shell, e não bash.
Existe uma maneira fácil de identificar se um script é bash ou sh?
Existem algumas coisas distintas na sintaxe?
bash
shell
shell-script
user1115057
fonte
fonte
Respostas:
Na verdade, as linhas shebang significam algo que algumas distribuições como o Debian não usam
bash
para/bin/sh
masdash
.A solução mais simples para determinar se um script de shell é bash é usar
checkbashism
- vejaman checkbashisms
para detalhes.checkbashisms
deve ser empacotado por diferentes distribuições, pois o Debian está nodevscripts
pacote - o Fedora estádevscripts-minimal
(costumava estarrpmdevtools
) e o OpenSuSe norpmlint-mini
fonte