Execute o script sem ./ antes do nome

Execute o script sem ./ antes do nome

Estou executando um script bastante complicado que altera diretórios e executa muitos outros comandos. Todos esses comandos são executados usando 'scriptname', que funciona bem quando executo o script principal em meu terminal. No entanto, às vezes eu tenho que fazer ssh em um servidor e executar o script principal a partir daí, ele falha porque não há um ./ antes de cada comando.

Prefiro não passar por todos os scripts e executáveis ​​e adicionar um ./ aos comandos, então há outra maneira de resolver esse problema?

Responder1

Existem maneiras de alterar esse comportamento, incluindo adicionar ./à variável de ambiente PATH, mas isso apresenta um sério risco de segurança ao seu ambiente. A forma como seus scripts são escritos está realmente errada e a solução correta é passar por todos eles e corrigir a forma como os scripts locais são chamados. Esta é a única solução adequada que não apresentará problemas extras no futuro e criará problemas de segurança para você. Eu sei que não é o que vocêdesejadoouvir, mas morda a bala e faça certo.

Responder2

se seus scripts estiverem em /opt/housekeeping/bin, sugiro que você adicione

export PATH=$PATH:/opt/housekeeping/bin  

para o seu .bash_profile ou .profile ou qualquer que seja o script de login que você usa e certifique-se de que a permissão 755 também esteja definida nesses scripts.

Responder3

você pode criar um alias para o seu script:

alias scriptfile="./scriptfile"

informação relacionada