Shebang
Em computação, um shebang (também chamado de sha-bang,[1][2] hashbang,[3][4] pound-bang,[5] ou hash-pling[6]) 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:[7][8]
#!/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.[9]
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.[10]
Referências
- ↑ «Advanced Bash Scripting Guide». Consultado em 19 de janeiro de 2012
- ↑ Cooper, Mendel (5 de novembro de 2010). Advanced Bash Scripting Guide 5.3 Volume 1. [S.l.]: lulu.com. p. 5. ISBN 978-1-4357-5218-4
- ↑ MacDonald, Matthew (2011). HTML5: The Missing Manual. Sebastopol, California: O'Reilly Media. p. 373. ISBN 978-1-4493-0239-9
- ↑ Lutz, Mark (setembro de 2009). Learning Python 4th ed. [S.l.]: O'Reilly Media. p. 48. ISBN 978-0-596-15806-4
- ↑ Lie Hetland, Magnus (4 de outubro de 2005). Beginning Python: From Novice to Professional. [S.l.]: Apress. p. 21. ISBN 978-1-59059-519-0
- ↑ Schitka, John (24 de dezembro de 2002). Linux+ Guide to Linux Certification. [S.l.]: Course Technology. p. 353. ISBN 978-0-619-13004-6
- ↑ «The #! magic, details about the shebang/hash-bang mechanism on various Unix flavours» (em inglês). Consultado em 5 de junho de 2010
- ↑ «The Shebang Line: An Introduction to Porting Shell to Perl» (em inglês). Consultado em 5 de junho de 2010
- ↑ «SRFI 22: Running Scheme Scripts on Unix» (em inglês). Consultado em 7 de junho de 2013
- ↑ «Dash as /bin/sh». wiki.ubuntu.com. Consultado em 29 de outubro de 2017
Ver também
- Shell (informática)
- Shell script
- Unix
![]() | Este artigo sobre informática é um esboço. Você pode ajudar a Wikipédia expandindo-o.
|