![SSH 파이프를 사용한 이스케이프 정보](https://linux55.com/image/52967/SSH%20%ED%8C%8C%EC%9D%B4%ED%94%84%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%9C%20%EC%9D%B4%EC%8A%A4%EC%BC%80%EC%9D%B4%ED%94%84%20%EC%A0%95%EB%B3%B4.png)
다음과 같은 긴 매개변수를 사용하여 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 "