.sh
é indicativo de um script para o shell Bourne ( sh
) ou o shell Bourne Again ( bash
), que geralmente é um superconjunto de seu predecessor.
.csh
é indicativo de um script para o shell C ( csh
), que, sendo um shell, é muito semelhante, mas significativamente diferente assim que você começa a fazer algo muito mais complexo do que executar uma série de static comandos.
Ambos os shells estão geralmente disponíveis em qualquer ambiente POSIXy, e na verdade ambos são pré-instalados, embora bash
(e seu primo sh
) sejam um pouco mais onipresentes na minha experiência.
Eu digo 'indicativo' acima, porque a ideia de uma extensão de arquivo não existe tecnicamente e não tem significado semântico ou sintático. Um arquivo pode ser denominado script.steve
ou documentation.exe
ou include.h
e ainda ser, na verdade, um script de shell. Para uma confirmação mais definitiva, veja a primeira linha do arquivo. Para um script projetado para ser executado diretamente, ele deve começar com uma linha shebang, que começa com um octothorpe ( #
), um estrondo ( !
) e o caminho para o executável que deve executar o script. Por exemplo:
#!/usr/local/bin/bash
ou
#!/usr/bin/python3