SSH를 통해 변수가 포함된 표현식을 보내는 방법은 무엇입니까?

SSH를 통해 변수가 포함된 표현식을 보내는 방법은 무엇입니까?

다음 루프를 로컬에서 실행할 수 있습니다

for i in A B C; do mycommand $i; done

이제 보내려고 하는데ssh

다음 버전

ssh myhost for i in A B C; do mycommand $i; done

다음 버전

ssh myhost "for i in A B C; do mycommand $i; done"

i또한 지역 변수가 필요하기 때문에 실패합니다 .

그것을 처리하는 방법?


mycommand예를 들어, 다른 SSH인 경우에는 어떻게 됩니까 ?

ssh myhost 'for i in hos1 host2 host3; do ssh "$i" ... another for expression

답변1

작은따옴표만 사용하세요.

ssh myhost 'for i in A B C; do mycommand "$i"; done'

$i로컬 쉘이 이를 대체하도록 하는 대신 ssh 명령의 리터럴 문자를 사용합니다 . 일반적으로 말하면, 여기서 값에 꼭 필요한 것은 아니지만 단어 분리 문제를 방지하기 위해 확장을 큰따옴표로 묶는 것이 좋습니다.

바라보다:

관련 정보