Na verdade, no CentOS 7, /bin/sh
é um link simbólico para /bin/bash
, que é o shell disponível por padrão na maioria das distribuições Linux.
$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 9 febr. 08:21 /bin/sh -> bash
(Se o comando acima retornar No such file or directory
, então você está certo, você teria um problema. Você poderia então executar which sh
para saber o caminho correto)
Portanto, no caso de você ter o mesmo resultado que eu, usar #!/bin/sh
e #!/bin/bash
será o mesmo.
Como alternativa, você pode usar este artigo: #!/usr/bin/env sh
ou #!/usr/bin/env bash
. Nesse caso, ele executará o primeiro sh
ou bash
disponível em seu PATH, independentemente do sh
ser definido em /bin
, /usr/bin
ou em qualquer lugar. Embora possa ser conveniente para portabilidade, note que pode haver algum problema de segurança se você tiver vários executáveis nomeados sh
em seu PATH.