ssh <host> <command>
구문을 사용하여 SSH 호스트에서 직접 명령을 실행할 때 (또는 ) 의 출력은 .bashrc
보이지만 출력은 보입니다 ..bash_profile
.profile
예를 들어, 다음 명령을 두 파일의 맨 위에두면
echo ${BASH_SOURCE[0]}
수동으로 소스 .bash_profile
(어느 소스 .bashrc
차례), 내가 볼 수 있습니다
$ . .bash_profile
.bash_profile
.bashrc
이것은 ssh <host>
명령 형식을 사용하여 SSH를 통해이 컴퓨터에 원격으로 로그인 할 때와 동일한 결과 입니다. (그리고 내가 .bash_profile
일시적으로 다른 곳에 뒀다면 ,이 선들 중 어느 것도 에코되지 않습니다.)
그러나의 ssh <host> <command>
형식으로 원격 컴퓨터에서 직접 명령을 실행 ssh
하면 출력은 다음과 같습니다.
$ ssh <host> echo foo
/home/rlue/.bashrc
foo
나의 이해의 차이이다 .bash_profile
그리고 .bashrc
전자가 있다는 것이다 로그인 쉘 후자가있는 동안 대화 형, 비 로그인 쉘 .
나는 다음을 결론 지었다.
ssh <host>
자원에만.bash_profile
반면,ssh <host> <command>
소스 만.bashrc
, 즉- 전자는 로그인 쉘이고 후자는 로그인 쉘이 아닙니다.
이러한 결론이 맞습니까? ssh <host> <command>
대화 형 비 로그인 셸로 취급되는 이유는 무엇 입니까? SSH가 여전히 명령을 실행하기 위해 원격 시스템에 로그인하지 않습니까?
.bashrc
은 오류가 발생하지만 비슷한 줄은 오류가 발생 .bash_profile
하지 않았습니다. 문제가되는 행을 수정하기 전에 불일치를 조사 할 기회를 얻었습니다.
.bashrc
?의 출력 이 파일은 출력을 생성하지 않아야합니다. 모든 출력은.bashrc
ssh를 전송으로 사용하여 모든 도구를 중단 할 수 있습니다.