2016-11-02 2 views
2

다음과 같이 작은 테스트 스크립트가 있습니다.mkdir -p over SSH bash

TESTDIR="$HOSTNAME" 
ssh [email protected] "\$TESTDIR" 
mkdir -p ~/$TESTDIR/test 
exit 
bash -x

함께 출력된다;

+ TESTDIR=ndx 
+ ssh [email protected] '$TESTDIR' 
+ mkdir -p /home/user/ndx/test 
+ exit 

그러나 원격 서버에는 디렉토리가 존재하지 않습니까?

+3

당신에게 ' mkdir을 실행하거나/LOCALLY를 종료하십시오. 그들은 ssh 링크를 통해 전송되지 않으며 ssh 명령은 원격 쉘이 닫힐 때까지 BLOCK됩니다. mkdir 명령에 도달 할 때까지 ssh가 종료되고 링크가 닫힙니다. 'ssh ... -c '명령; 실행하다; 원격으로 '당신이 원하는 것입니다. –

+0

예를 들어 물어봐도 될까요? – eekfonky

답변

3

ssh의 마지막 인수는 원격 호스트에서 실행하려는 명령입니다 : 당신이 인증으로 ssh를 위해 PEM 파일이있는 경우 사용

TESTDIR="$HOSTNAME" 
ssh [email protected] "mkdir -p ~/$TESTDIR/test"