답변:
변수 보간 그래서 여기에 내가 일이 될 수있다 생각입니다, 따옴표 내에서 수행됩니다 : 당신이 입력 할 때 ssh $HOST "ls -l | awk '{print $1}'"
, (당신이 SSH 클라이언트를 실행하는 로컬 컴퓨터에 하나) 쉘은보고 $1
와 따옴표 및 대체합니다 그것을 내 변수의 값으로, $1
비어 있습니다. 가 $1
큰 따옴표 안에 작은 따옴표 안에 중첩되어 있음을 감지 할 수 없습니다 . 그래서 원격 서버로 전송되는 것은
ls -l | awk '{print }'
이것은 기본적으로
ls -l | cat
즉, 그냥의 출력을 인쇄합니다 ls -l
.
해결책 : $
백 슬래시로
ssh $HOST "ls -l | awk '{print \$1}'"