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!