원격 시스템의 변수를 사용하여 SSH 및 쉘 스크립트를 통해 명령 실행

원격 시스템의 변수를 사용하여 SSH 및 쉘 스크립트를 통해 명령 실행

내 로컬 컴퓨터의 스크립트를 사용하여 원격 컴퓨터에 있는 명령과 스크립트를 실행하고 싶습니다. 나는 를 사용하여 그러한 명령을 실행할 수 있다는 것을 알고 ssh다음과 같이 했습니다.

#!/bin/bash
ssh username@target 'cd locationOf/theScript/; ./myScript.sh'

완벽하게 작동합니다. 나는 이 스크립트가 좀 더 일반적이고 변수를 사용하기를 원합니다. 지금이야:

#!/bin/bash
LOCATION=locationOf/theScript/
EXEC=myScript.sh
ssh username@target 'cd ${LOCATION}; ./${EXEC}'

다음 오류가 발생합니다.bash: ./: is a directory

원격 컴퓨터가 이러한 변수에 대해 알지 못하는 것 같습니다. 그럼 방법은 없을까출구그들은 목표를 달성했나요?

답변1

환경 변수를 대상으로 내보내는 쉬운 방법을 모르지만 . 를 s 로 바꾸면 문자열이 그대로 전달되지만 다음을 사용 하면 됩니다 '."''cd ${LOCATION}; ./${EXEC}'

ssh username@target "cd ${LOCATION}; ./${EXEC}"

변수 대체는 로컬에서 수행됩니다.

LOCATION및 값은 EXEC원격 쉘로 전달되므로 쉘 특수 문자가 포함되지 않은 경우에만 유효합니다.

관련 정보