Em computação, um shebang (também chamado de sha-bang, hashbang, pound-bang, ou hash-pling) refere-se aos dois caracteres "#!", quando os mesmos são os primeiros caracteres de um arquivo de texto, especificamente em um código fonte escrito em uma linguagem interpretada. Em sistemas operacionais como o Unix, o sistema tenta executar o arquivo usando um interpretador especificado pelo shebang. Por exemplo, scripts compatíveis com o Bourne shell iniciam-se com o shebang:

#!/bin/sh

Mais precisamente, uma linha shebang consiste de um cerquilha e um ponto de exclamação ("#!"), em seguida, opcionalmente, qualquer quantidade de espaços em branco, seguidos pelo endereço (absoluto) para o interpretador. Pelo fato do caractere "#" ser usado como marcador de comentários em muitas linguagens de script, o uso do shebang, na maioria dos casos, não interfere no funcionamento do código; alguns interpretadores de linguagens que não usam cerquilha para iniciar comentários (como Scheme) podem ignorar a linha do shebang, em reconhecimento do seu propósito em alguns sistemas.

Portabilidade O fato de shebangs terem de usar endereços absolutos pode causar problemas em sistemas que instalam os interpretadores em lugares diferentes. Por exemplo, o interpretador da linguagem Python pode estar em /usr/bin/python, /usr/local/bin/python, ou até em /home/usuário/bin/python se o usuário o instalou sem privilégios de administrador.

Uma solução para esse problema é adicionar um nível de indireção, como o env. No exemplo a seguir, o env busca pelo interpretador da linguagem Python, versão 3:

#!/usr/bin/env python3

Scripts que usam sintaxe específica do Bash não devem usar /bin/sh pelo fato de não ser compatível com o Bourne shell. No Ubuntu desde a versão 6.10, por exemplo, /bin/sh é uma ligação simbólica para /bin/dash, por motivos de desempenho.

Ver também Shell (informática) Shell script Unix

Categoria:Terminologia informática Categoria:Unix