Executando Programas Interpretados (Scripts)

Introdução

Existem algumas maneiras de se executar um programa escrito em uma linguagem interpretada como Python, Perl e TCL, a partir do próprio shell do sistema. Geralmente esses programas são chamados de scripts nesse contexto e na prática um script é considerado pelo sistema tão executável quanto um programa escrito em uma linguagem compilada.

Invocando o Interpretador

A primeira forma de se executar um programa é oferencendo diretamente ao interpretador o nome do programa. Como em:
$ perl script.pl
$ python script.py
Parâmetros podem ser passados em seguida ao nome do script.
$ bash foo.sh abc.txt def.txt

A partir de uma indicação no Script

A segunda forma permite executar um script igual ao que fazemos com um programa compilado, digitando apenas o nome dele. Esta forma utiliza-se de um artifício que o shell possui, na qual a primeira linha do arquivo deve conter identificador mágico seguido do nome do interpretador desejado. Este identificador é a seqüência #! seguida do caminho até o o executável do interpretador. Tudo isso sempre na primeira linha do arquivo.

Por exemplo, use #!/bin/sh para um script em Shell ou então #!/usr/bin/python para um script em Python. Note que #!/usr/bin/python tem a desvantagem de não funcionar em ambientes BSD ou pelo menos tem-se que alterar o path para /usr/local/bin. Uma forma de evitar essa pequena complicação é usar o comando env para chamar o interpretador, assim a linha de um script em Python deve ser:

#!/usr/bin/env python
#
# script.py: meu pequeno script
#
print "rodei!"
O que acontece se tento executar este script?
$ ./script.py
bash: ./script.py: Permissão negada
Oops! O que faltou?

Ligando o Modo de Execução

Somente modificar o script e acrescentar a linha mágica não é o bastante, é necessário também ativar o bit de executável para o arquivo. Isso é fácil de resolver
$ chmod +x script.py
Agora é só chamar o script, diretamente
$ ./script.py
rodei!