나는 컴퓨터에서 SSH를 실행하고 몇 가지 명령을 실행하고 있습니다.
내 마지막 명령은 로컬 스크립트에 필요한 변수를 제공했습니다. 하지만 컴퓨터에서 로그아웃한 후 이 변수에 어떻게 액세스합니까?
편집: 제가 이미 컴퓨터에 로그인했다고 가정해 주세요.
답변1
원격으로 실행된 명령의 출력을 클라이언트 컴퓨터의 로컬 변수에 캡처할 수 있습니다.
myvar="foo"
echo "$myvar"
myvar=$(ssh user@hostname 'myvar="bar"; echo $myvar')
echo "$myvar"
원격 명령 주위에 작은따옴표가 있음을 참고하십시오: 'myvar="bar"; echo $myvar'
. 이렇게 하면 $myvar
평가를 위해 원격 호스트에 명령을 보내기 전에 쉘이 로컬로 확장되는 것을 방지할 수 있습니다 .
답변2
원하는 방법에 따라 다릅니다. 대화형 세션에서 단일 명령의 출력을 자동으로 가져오는 것은 쉽지 않습니다. 물론 터미널에서 출력을 복사하여 붙여넣을 수도 있습니다. 그러나 출력을 원격 파일에 저장한 후 다음과 같은 작업을 수행 var=$(ssh remote "cat file.with.var")
하거나 다음과 같은 최종 출력을 생성하는 명령을 실행할 수도 있습니다 var=$(ssh remote "somecommand")
.
또는 대화형 세션에서 직접 이 작업을 수행하려면 Expect 스크립트를 설치하면 됩니다.