![Como fazer comandos bash personalizados? (executando arquivos python, perl, ruby)](https://rvso.com/image/1604254/Como%20fazer%20comandos%20bash%20personalizados%3F%20(executando%20arquivos%20python%2C%20perl%2C%20ruby).png)
Eu gostaria de usar certas ferramentas executadas em Python/Perl/Ruby. Por exemplo, myProgram.py
é armazenado em ~/folder1/folder2/. Eu gostaria de executá-lo com entradas do bash como >>> myProgram -h
.
Até agora, li sobre duas maneiras de fazer algo semelhante:
- Crie arquivos em um diretório bin:
# in /bin/
~/folder1/folder2/myProgram
# this works when the target is a bash program
- Edite
~/.bashrc
para um alias permanente:
# in ~/.bashrc
alias myProgram='python ~/folder1/folder2/myProgram.py'
Infelizmente, a primeira maneira parece não funcionar com arquivos não-bash (até onde tentei), e a segunda opção apenas retorna um erro como myProgram: command not found
.
Como devo fazer comandos bash para acesso rápido às minhas ferramentas Python/Perl/Ruby com entrada com os comandos?
Responder1
Para executar seus scripts assim, você precisa de três coisas:
- O script deve estar no diretório listado em sua
$PATH
variável. Se você colocar scripts para~/bin
executá-los sem especificar o caminho completo para o arquivo sempre que fizer login, será necessário estender o caminho.bashrc
adicionando a seguinte linhaexport PATH=$PATH:~/bin
. Para ver quais diretórios já estão no seu caminho, basta imprimi-loecho $PATH
. Para fazer qualquer alteração no.bashrc
arquivo, você precisa fazer login novamente (ou executar novamente o bash). - O script deve ter permissão de bit executável definida. Para fazer isso execute o comando
chmod +x /path/to/script
- O script deve informar qual interpretador usar para executá-lo. Para isso é usada uma primeira linha especial no script chamada shebang:
#!/path/to/interpreter
. Para Python, isso será#!/usr/bin/python
. Como sistemas operacionais diferentes podem ter binários em locais diferentes, é recomendado usar o shebang no formato#!/usr/bin/env python
que executará o interpretador Python padrão, não importa onde ele esteja.
ATUALIZAÇÃO: Com base nos comentários, estou atualizando esta resposta com links simbólicos. Se você deseja apenas tornar mais fácil o acesso às ferramentas já instaladas, não é necessário criar scripts. Você só precisa encontrar o executável dessa ferramenta (ou se for um script, torná-lo executável se ainda não for) e então colocar o link simbólico (veja man ln
) para ele no diretório em seu $PATH (ou adicionar o diretório com o executável em seu $ CAMINHO).
NOTA: Apenas tornar o script executável (veja 2.) e adicionar alias
ao seu .bashrc
testamento também funciona, mas é bastante inconveniente adicionar um novo alias toda vez que você cria um novo script.