
다음과 같은 긴 매개변수를 사용하여 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 "