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.