Minha pergunta parece trivial, mas não consegui encontrar nada útil na internet. Eu tenho um binário em
/urs/bin/binary
mas está desatualizado e a versão mais recente está disponível em algumas montagens, por exemplo
/mount/new_version/binary
Existe um script bash que chama esse binário de uma forma como
binary -doSomething
Eu preciso desse script para invocar uma nova versão do binário em vez da antiga, mas não tenho permissão para alterar esse script. É uma maneira de substituir o caminho de alguma forma, mas apenas para o meu usuário? Qualquer ajuda seria apreciada.
Respostas:
Se o binário estiver dentro
/usr/bin/binary
e o script chama o binário sem especificar o caminho completo, mas depende de/usr/bin
estar dentroPATH
, você pode simplesmente adicionar o local do novo binário ao início do usuárioPATH
. Coloque algo assim em seus~/.bashrc
:Por motivos de segurança, os scripts geralmente especificam o caminho completo dos binários para evitar esse tipo de coisa.
fonte
Se você tiver acesso ao binário, poderá fazer backup e criar um link simbólico.
[EDITAR]
Desculpe, não vi que a alteração deve ser feita apenas para um usuário.
Você pode criar uma função a ser chamada em vez do binário.
Dependendo de como você executa o binário (caminho completo ou apenas o nome), você deve criar uma função adequada , como:
Se o binário não aceitar / precisar de argumentos, remova o "$ @" .
Para automatizar a criação da função, coloque as linhas de função no arquivo .profile no diretório inicial do usuário.
fonte
alias commandname=/mount/new_version/binary
no .bashrc acima da declaração do caminho / exportação ou no perfil será fácil o suficiente.
fonte