SSH를 통해 .bash_profile 포함

SSH를 통해 .bash_profile 포함

다음 스크립트를 작성하려고 합니다.

  1. copy.sh서버에 파일 복사( 이 작업을 수행하는 스크립트가 이미 있습니다 )
  2. 서버에 SSH로 접속
  3. 방금 복사한 파일이 있는 디렉터리로 이동합니다.
  4. 달리기make
  5. 생성된 바이너리를 make다른 위치에 복사합니다.

내 스크립트는 다음과 같습니다

#!/usr/bin/bash
BUILDSERV=me@server
BUILDDIR=/me/directory

#run my script that copies the files
./copy.sh

#TARGET is also a var in copy.sh so I make sure it's set properly here
TARGET=root@final_dest:/usr/bin/my_bin

ssh $BUILDSERV "cd $BUILDDIR && make && scp ./my_bin $TARGET"

문제는 내가 실행하려는 프로그램이 make내 프로그램에 없다는 것입니다 PATH. 내 프로그램 .bash_profile에는 해당 라인이 있지만 export PATH=$PATH:/my/bin/ssh에 접속할 때 읽혀지지 않는 것 같습니다 bash_profile.

내 SSH 호출이나 스크립트를 변경하여 내 내용을 읽을 수 있는 방법이 있나요 .bash_profile?

답변1

다음이 작동합니다.

ssh $BUILDSERV "source ~/.bash_profile && cd $BUILDDIR && make && scp ./my_bin $TARGET"

source내장 기능은 동일한 쉘에서 파일을 읽고 명령을 실행합니다(단순히 별도의 쉘을 호출하는 스크립트를 호출하는 것과 반대).

로그인 셸로 호출되면 bash실행된 것과 정확히 동일한 방식으로 실행되므로(있는 경우) 효과는 동일합니다..bash_profilesource

관련 정보