Você pode armazenar seus scripts onde eles pertencem ao sistema de arquivos e criar um diretório bin
em sua casa. Adicionando
if [ -d "$HOME/bin" ] ; then
export PATH="$HOME/bin:$PATH"
fi
no seu .bashrc
torna qualquer executável colocado em ~/bin
detectável. Finalmente, você só precisa adicionar arquivos no doretor. Você pode usar links simbólicos para qualquer script que você queira tornar disponível em ~/bin
, o que permite alterar virtualmente o nome do script e deixá-lo onde quiser no sistema de arquivos. Como exemplo, para um arquivo my_script.sh
, primeiro verifique se o arquivo é executável
chmod u+x my_script.sh
crie um link simbólico
ln -s my_script.sh ~/bin/my_script
na pasta dedicada. Observe que a extensão foi removida por conveniência. Agora você pode executar seu script de qualquer lugar usando o comando my_script
. Você não precisa fazer o link simbólico toda vez que editar o arquivo my_script.sh
original.
Editar: para tornar qualquer arquivo de texto executável através de um determinado intérprete, você pode usar um shebang . Para um script bash, isso significa adicionar
#!/bin/bash
como primeira linha do arquivo. Observe que a técnica não está restrita a scripts bash, mas também se aplica ao python, por exemplo, usando
#!/usr/bin/env python
Observação: eu uso pessoalmente ~/.local/bin
se ~/bin
como uma preferência pessoal, mas a maioria das pessoas usa um diretório bin
localizado diretamente em sua casa, não oculto. Muitas distribuições o integram diretamente, como debian ou ubuntu, que adicionam automaticamente tal diretório no PATH
se ele existir (no arquivo .profile
padrão que eles enviam). A minha escolha é baseada no fato de que muitos softwares já usam .local/share
, que eu considero como uma ferramenta de configuração e não como um conjunto de arquivos reais (apenas links simbólicos), e que eu não quero que essa pasta mexa com a conclusão.