ssh
호스트 머신에 들어가서 echo $PATH
:
$ ssh my@host
$ echo $PATH
내가 얻는 값은 $PATH
스크립트를 로컬에서 실행할 때와 다릅니다.
ssh my@host '\
echo $PATH;'
이유를 아시나요?
노트:ssh
스크립트에서 [다른] CLI를 사용하면 전체 경로 변수를 가져오지 못하는 것 같습니다.
답변1
이는 ssh()를 통해 명령을 실행하면 ssh user@host 'command'
비로그인 셸이 열리기 때문입니다. 로그인 쉘과 비로그인 쉘의 차이점에 대한 자세한 분석을 확인할 수 있습니다.이 문제에서. 본질적으로 문제의 원인은 ssh를 통해 명령을 실행할 때 명령에 ~/.bash_profile
소스가 없기 때문에 경로에 대한 수정 사항을 사용할 수 없다는 것입니다.
~/.bashrc
해결책은 비로그인 셸을 열 때 얻을 수 있는 파일로 파일을 옮기 거나, 발견한 대로 .bash_profile
스크립트에서 직접 가져오는 것입니다.