0
원격 서버의 bash 스크립트를 통해 여러 명령을 실행하려고합니다. 특히 원격 서버에서 실행되는 for 루프가 문제를 일으킨다. 나는 문자를 제대로 이스케이프 처리하거나 $()를 사용하는 법을 모르기 때문에 그럴 것이라고 생각한다.원격 서버의 루프 용 Bash
다음은 코드입니다.
ssh (user)@(server) <<EOF
sudo su - (username)
whoami
'for e in $(`ls -lrt /usr/jboss/jbosseap | awk '{print $9}' | grep multichannel`);
do
echo "$e";
done'
분명히 이유로 사용자와 서버 이름을 제거하십시오. for 루프에만 집중하십시오. 루프 커맨드 라인 ($()없이)을 실행하면 잘 동작합니다. 그냥 원격 호출에 중첩하는 방법을 모르겠습니다.
대단히 고맙습니다.
bash가'$ (..)','$ 9'와'$ e'를 먹지 않도록하려면 여기에 doc 터미네이터 ('ssh user @ host << "EOF")를 인용하십시오. 그런 다음 바로 실행하려는 코드를 넣을 수 있습니다 (여기서 한 것처럼 작은 따옴표로 이스케이프하지 않고) –