SSH 파이프를 사용한 이스케이프 정보

SSH 파이프를 사용한 이스케이프 정보

다음과 같은 긴 매개변수를 사용하여 awk 명령을 실행하고 싶습니다.

ssh host "netstat -rn|awk 'NR!=1 && NF>=6 && $1!="Destination" {printf "%-15s %-20s\n", $1, $2}'|sort -f "

하지만 몇 가지 오류가 있습니다.

구문 오류 소스 코드 줄은 1입니다. 오류 컨텍스트는 NR!=1 && NF>=6 && >>> != <<< awk: 종료 소스 라인은 1입니다.

그럼 어떻게 해결하나요?

답변1

모든 불쾌한 하위 쉘 참조를 우회하려면 여기 문서를 사용하십시오.

ssh you@host <<-\SSH
    awk -f 3<<\AWK /dev/fd/3
        awk script
        as many lines as you like
        "$vars and quotes" are only evaluated by awk
    #END
    AWK
    "$vars and quotes" are only evaluated by remote shell
    echo 'single quotes and all'
    rest of ssh script
#END
SSH

답변2

백슬래시를 사용하여 보호하고 원격 명령에 사용합니다 $."

ssh host "netstat -rn|awk 'NR!=1 && NF>=6 && \$1!=\"Destination\" {printf \"%-15s %-20s\n\", \$1, \$2}'|sort -f "

관련 정보