O script SSH não tem acesso à variável de caminho completo

0

Quando eu ssh no host e echo $PATH :

$ ssh my@host
$ echo $PATH

Eu recebo um valor diferente para $PATH do que quando executo um script localmente:

ssh my@host '\
    echo $PATH;'

Alguma ideia do porquê?

NOTA: parece que não obtenho a variável completa do caminho quando ssh ing de um script versus [other] CLI.

    
por the_prole 19.07.2018 / 20:14

2 respostas

0

Isso se deve ao fato de que, quando você executa um comando através de ssh ( ssh user@host 'command' ), ele abre um shell que não é de login. Um excelente detalhamento das diferenças entre um shell de login e um shell de não-login pode ser encontrado nesta questão . Essencialmente, o que está causando o problema é que, quando você executa o comando por meio do ssh, seu ~/.bash_profile não é originado, o que significa que quaisquer modificações no caminho que ele fizer não estarão disponíveis.

A solução é movê-los para o seu ~/.bashrc , que é originado ao abrir um shell que não seja de login, ou como você descobriu, obtendo seu .bash_profile diretamente no script.

    
por 19.07.2018 / 20:44
0

Adicionando esta linha ao script bash trabalhado

source ~/.bash_profile

source

    
por 19.07.2018 / 20:30

Tags