Execute o script sem ./ antes do nome

2

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 eu executo o script principal do meu terminal. No entanto, às vezes eu tenho que ssh em um servidor e executar o script principal de lá, ele falha, pois não há um ./ antes de cada comando.

Eu prefiro não passar por todos os scripts e executáveis e adicionar um ./ aos comandos, então existe outra maneira de resolver este problema?

    
por user72404 13.06.2014 / 13:53

3 respostas

12

Existem maneiras de alterar esse comportamento, incluindo a adição de ./ à sua variável de ambiente PATH, mas isso apresenta um sério risco de segurança ao seu ambiente. A maneira como seus scripts são escritos está realmente errada e a solução correta é percorrer todos eles e consertar a maneira como os scripts locais são chamados. Essa é a única correçã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ê queria ouvir, mas morda a bala e faça o certo.

    
por 13.06.2014 / 14:21
1

se seus scripts estiverem sob / opt / housekeeping / bin, sugiro adicionar

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

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

    
por 13.06.2014 / 14:47
-1

você pode criar um alias para o seu script:

alias scriptfile="./scriptfile"
    
por 13.06.2014 / 22:37