Algum exemplo de como escrever um aplicativo que é executável do terminal como o git?

3

Eu quero escrever um aplicativo do Ubuntu que me ajude a lidar com uma API baseada na web. Eu posso escrevê-lo em Python, mas eu quero saber como construí-lo para que eu possa executá-lo como um comando no próprio terminal.

    
por Puck 14.09.2012 / 09:28

3 respostas

7

Coloque seu programa Python em um arquivo de texto. A primeira linha desse arquivo deve ser

 #!/usr/bin/python

 print "Hello world"

(eu coloquei a linha "Hello world" apenas como um exemplo de código Python). Salve como um arquivo de texto, por exemplo, test.py . Tornar esse arquivo executável

 chmod a+x test.py

Presto, agora você pode executá-lo:

 ./test.py

Para poder acessá-lo de qualquer diretório e para cada usuário, coloque-o em /usr/local/bin , que é o local padrão para executáveis não instalados com gerenciadores de pacotes:

sudo cp test.py /usr/local/bin

Como alternativa, você pode criar um diretório chamado "bin" em seu diretório inicial; ele será automaticamente anexado à sua variável PATH através do arquivo $ HOME / .profile.

mkdir $HOME/bin
mv test.py $HOME/bin

Em ambos os dois últimos casos para executar o seu script no terminal, você só precisa escrever:

test.py

A extensão ".py" está aqui apenas para você indicar que é um script Python. Você pode chamá-lo de "susan" e executá-lo digitando

susan

Funcionará da mesma forma.

    
por January 14.09.2012 / 09:32
2

O Python é uma linguagem de script, o que significa que você não precisa compilá-lo antes de executá-lo. Tudo o que você precisa é obter a versão exigida do interpretador Python instalado.

Por exemplo, você tem um script python chamado foo.py no seu diretório home, você pode rodar esse script com o comando

$ ~/foo.py

A primeira linha do arquivo deve informar que é um arquivo python. Primeira linha deve ser como:

#!/usr/bin/env python

Supondo que esteja definido como executável, se não:

$ chmod +x ~/foo.py

Se o que você quer é rodá-lo sem ~/ , você deve movê-lo para seu $ PATH.

$ echo $PATH
/usr/local/bin:/usr/bin:/bin

Se você mover foo.py em /usr/local/bin , /usr/bin ou /bin , poderá executar sem qualquer pasta pai.

$ sudo mv ~/foo.py /usr/local/bin
$ foo.py
    
por Gokhan Sari 14.09.2012 / 09:37
1

Como funciona, basta colocar um pequeno script python em /usr/local/bin para poder executá-lo a partir da linha de comando (veja resposta ) podemos ter um aplicativo python mais elaborado que precisamos armazenar em outro lugar (por exemplo, em /opt/myapp/ ).

Podemos então escrever um pequeno script que colocamos em /usr/local/bin/ que faz referência ao nosso script python, por exemplo,

#! /bin/bash

python /opt/myapp/myapp.py "$@"

Adicione a variável "$@" no caso do seu script ter parâmetros de linha de comando.

    
por Takkat 14.09.2012 / 09:48

Tags