원격 서버와의 scp 파일을 작성하는 스크립트를 작성 중이며 스크립트로 디렉토리를 하드 코드하지 않고 스크립트 내에서 원격 서버 변수를 사용하려고합니다. 경로가 다른 여러 환경에서 사용됩니다. SCP에서 원격 서버 변수를 사용합니다.
그래서 예를 들어 하드 버전은 파일을 가져 오기 위해
...scp를 사용자 @의 REMOTEHOST :/userbase가/filefolder/FILE1.
하지만 원격 호스트 "userbase"가 $ BASEHOME 변수로 설정되었다고 할 수 있습니다. 나는 표준을 알고있다
scp user @ remotehost : $ BASEHOME/filefolder/file1.
는 SCP나는 주위를 살펴했고, 그 다음과 유사한 일이
SCP를 작동 할 수 있음을 온라인으로 제안되었다 보내는 호스트에 $의 BASEHOME을 평가하기 위해 시도로
가 작동하지 않습니다 user @ remotehost : $ (ssh 사용자 @ remotehost "echo \ $ BASEHOME")/filefolder/file1.
그러나이 오류가 - 나는 다음과 같은 표시 (그것 따기없는 것처럼 변수)과 유사한 오류
로 대신 에코, 작은 따옴표와 $ BASEHOME 전에 어떤 \하지만 아무도 작업의 printf와 시도 scp :/filefolder/file1 : 해당 파일이나 디렉토리가 없습니다.
scp를 할 때 원격 변수를 사용할 수 있습니까?
감사합니다.
감사 일단 원격 변수를 얻고 나중에 재사용 :
해결 2 :
cat
리모트 측의 파일과 로컬 파일로 리디렉션 - 그것은 나를 위해 제대로 작동하지 않았지만 제대로 된 길로 나를 데려갔습니다. 사용을 종료 한 명령은 다음과 같이 조금씩 진행됩니다. BASEHOME = $ (ssh -t user @ remotehost. ~/.profile>/dev/null; echo \ $ BASEHOME ") 저는 ssh -t와 .profile을 호출하고/dev/null로 리디렉션해야했습니다. 그래서 모든 결과가 변수 – user2920657@ user2920657에 없었습니다. 감사합니다. 귀하의 의견은 많은 도움이되었습니다. 나는 또한 명시 적으로 프로필을 명시 적으로 소스해야했습니다. – bsumirak