De Diferença entre bash e sh :
ABck à pergunta: Se você tiver
/bin/sh
um link para o bash, o bash não se comportará da mesma maneira quando chamado,/bin/sh
como é chamado quando/bin/bash
. Quando chamado comosh
, ele se limitará principalmente à conformidade com POSIX, além de um conjunto limitado de extensões.
Isso significa que sempre que me deparei com um script de shell no Linux com um shebang para sh:, #!/bin/sh
mesmo que nessa distribuição, bin/sh
seja um link simbólico para outro shell, como dash ou bash, ele deve ser 100% compatível com o shell bourne, pois se limita a um conjunto limitado de extensão? Então eu poderia executá-los no FreeBSD? Há exceção a isso? Ou devo estar seguro em assumir que funcionará?
Portanto, se em uma distro, bin/sh
houver um link simbólico para bin/bash
, e um script usar #!/bin/sh
e o script contiver bashism, ele não será executado, pois o bash gostará do modo sh?