Parece que o script contém alguns caracteres CR (\ r). Se você editou este script do Windows, isso explicaria por quê. Executar isso deve revelar os caracteres de retorno de carro "invisíveis":
sed -n l /home/pi/sh/test.sh
(Isso é minúscula L, não 1).
Se você vir um \r
acima, consulte FAQ 52 para obter várias maneiras de se livrar deles.
Em uma nota secundária, não coloque a extensão .sh
em um script bash e não execute um script bash com sh
.