Como executar SH no Linux
Um arquivo com uma extensão ".sh" é normalmente nomeado dessa forma para indicar que é um script shell (bash, csh, ksh, e assim por diante). No entanto não há nada de especial numa extensão de ficheiro em UNIX ou Linux. Nenhum dos sistemas operacionais usa essa extensão para decidir como ela deve ser interpretada. Note, no entanto, que a shell que você está usando insistirá que você inclua essa extensão de arquivo se você tentar executá-la. Isto é diferente de um SO como o MS-DOS que executaria alegremente o PROG1.EXE sem ter de incluir o ".EXE".
Você pode usar o comando "file" para ver o que o Linux pensa que um dado ficheiro é (ou colecção de ficheiros). Tente "file random-file-name" ou "file *" para ver como ele funciona. Dê uma olhada na manpage "file" para mais informações.
Se você está escrevendo um script shell, você deve adicionar o que é chamado de linha "shebang" - por exemplo: "#!/bin/bash" ou "#!/bin/ksh" - diz ao seu shell qual o interpretador a utilizar ao executar o resto do ficheiro. Você também precisará torná-lo executável usando "chmod" - assim você pode simplesmente digitar seu nome na linha de comando para executá-lo - ou executá-lo usando um comando como "bash my-script" (ou "bash my-script.sh" se você ainda achar que extensões são necessárias). O último caso é necessário se você não tornar o script executável com "chmod".