![SSH를 통해 변수가 포함된 표현식을 보내는 방법은 무엇입니까?](https://linux55.com/image/217283/SSH%EB%A5%BC%20%ED%86%B5%ED%95%B4%20%EB%B3%80%EC%88%98%EA%B0%80%20%ED%8F%AC%ED%95%A8%EB%90%9C%20%ED%91%9C%ED%98%84%EC%8B%9D%EC%9D%84%20%EB%B3%B4%EB%82%B4%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
다음 루프를 로컬에서 실행할 수 있습니다
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 명령의 리터럴 문자를 사용합니다 . 일반적으로 말하면, 여기서 값에 꼭 필요한 것은 아니지만 단어 분리 문제를 방지하기 위해 확장을 큰따옴표로 묶는 것이 좋습니다.
바라보다: