
다음 루프를 로컬에서 실행할 수 있습니다
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 명령의 리터럴 문자를 사용합니다 . 일반적으로 말하면, 여기서 값에 꼭 필요한 것은 아니지만 단어 분리 문제를 방지하기 위해 확장을 큰따옴표로 묶는 것이 좋습니다.
바라보다: