Questão Como posso fazer script globalmente executável no Ubuntu?


Eu tenho um script bash que gostaria de executar em qualquer lugar (como outros comandos básicos do Linux, por exemplo ls). Eu tentei seguir isso tutorial mas não funciona, eu sempre consigo command not found.

Também seria legal se houvesse uma maneira de executar diretamente o script Python desta forma, atualmente eu tenho o arquivo .py com o script e, em seguida, o arquivo .sh que chama python /path/to/it.


0


origem




Respostas:


Se você escrever um script python, poderá executá-lo pelo menos das três maneiras a seguir:

1 Inicie o python com o script como um argumento.

Exemplo: /usr/local/bin/python-2.5 myscript.py 

2 Inicie o script com o interpretador shebang.

Isso significa que a primeira linha começa com #! (também chamado de shebang) seguido por um espaço (ou na maioria das vezes não!) e o caminho completo para o interpretador.

Exemplo:

#! / usr / local / bin / python-2.5
#
# Meu script de teste!
#
Faça alguma coisa

Observe que adicionei comentários depois de a primeira linha. Não os adicione acima, pois a primeira linha não começa mais com um shebang.

3 Inicie o script com #!/usr/bin/env python

Isso é mais ou menos o mesmo que a opção 2, exceto que env encontrará python para você. Se o python for movido para um local diferente ou para uma nova versão, você não precisará atualizar todos os seus scripts.

Esta é a solução preferida


Tanto para a parte em que você usou um script sh para chamar python / path / to / it. Agora você agora como pular essa parte.

A segunda parte da sua pergunta parece que seu script não foi encontrado. Para encontrar um script ou programa, você precisa especificar o caminho completo para ele (por exemplo, / usr / local / bin / myscript.py` ou ele precisa estar em seu caminho.

Você pode verificar com o que seu caminho atual está definido echo $PATH.

Provavelmente inclui / usr / local / bin /, o que significa que qualquer programa ou script descartado no diretório / usr / local / bin / será encontrado. Se não adicionar esse caminho ao padrão do sistema inteiro. (Nota: inicie um shell de login para testar isso depois de alterar isso. Alterar o arquivo de configuração sem iniciar um novo shell não refletirá as alterações).

Por fim, pulei a parte em que você deseja que o script seja executável. Você já teve isso no tutorial que você vinculou.


2