Alias global para todos os arquivos em um diretório, por seus nomes de arquivos (extensões, se disponíveis, serão omitidas)

0

No Ubuntu 16.04 eu tenho um diretório com quase 10 arquivos, cada um contendo um único arquivo de script Bash:

"$HOME"/myScripts/x.sh
"$HOME"/myScripts/y.sh
...

Em vez disso, crie quase 10 aliases diferentes para cada um desses arquivos em bashrc :

alias "$HOME"/myScripts/x.sh
alias "$HOME"/myScripts/y.sh
...

existe uma maneira de criar um alias "global", que manterá o caminho desse diretório ( "$HOME"/myScripts/ ) e me permitirá acessar a execução de cada um dos arquivos, mas também sem a extensão .sh ?

Por exemplo, vou executar no console:

x

e "$HOME"/myScripts/x.sh serão executados.

Eu realmente não usaria um nome não intuitivo como x , é apenas por exemplo.

O menor problema a ser resolvido aqui é salvar o número de aliases, facilitando sua manutenção. Quanto mais se trabalha com diretórios dedicados a alguns contextos de software, mais esse método seria útil, eu assumo.

Atualizar

No final, o que eu fiz foi criar um arquivo com muitas funções Bash, então eu obtive o arquivo e depois exportei as funções nele:

export -f myFunc_0 myFunc_1 ...

Pode haver uma maneira global simples de exportar, mas não sei de uma.

    
por user9303970 15.02.2018 / 10:32

1 resposta

3

Você pode adicionar o diretório ao seu caminho, o que permite digitar x.sh em qualquer lugar sem precisar de um alias.

Em ~/.bashrc , por exemplo:

PATH="$PATH:$HOME/myScripts"

Não é necessário ter uma extensão para renomear o script de x.sh para x .

mv ~/myScripts/x.sh ~/myScripts/x

Como alternativa, você poderia criar um link simbólico do seu script para algum lugar no caminho, como /usr/local/bin , e nomear o link x .

ln -s /home/user/myScripts/x.sh /usr/local/bin/x
    
por 15.02.2018 / 10:54