내 로컬 컴퓨터의 스크립트를 사용하여 원격 컴퓨터에 있는 명령과 스크립트를 실행하고 싶습니다. 나는 를 사용하여 그러한 명령을 실행할 수 있다는 것을 알고 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
원격 쉘로 전달되므로 쉘 특수 문자가 포함되지 않은 경우에만 유효합니다.