
curl
다운로드한 페이지를 화면에 인쇄하는 대신 파이프로 보내는 방법
이것은 작동합니다:
# curl -Ss -o txt https://pgl.yoyo.org/adservers/serverlist.php?showintro=0;hostformat=hosts
# grep 127 txt
하지만 다음은 그렇지 않습니다.
# curl -Ss -o txt https://pgl.yoyo.org/adservers/serverlist.php?showintro=0;hostformat=hosts | grep 127
중간 파일을 사용하지 않고도 작동하도록 할 수 있나요?
답변1
curl
파일( )에 쓰지 말라고 지시 -o txt
하고 URL을 인용하십시오.
curl -Ss 'https://pgl.yoyo.org/adservers/serverlist.php?showintro=0;hostformat=hosts' | grep 127
URL의 세미콜론 때문에 시도가 작동하지 않습니다. 세미콜론을 인용하지 않으면 쉘은 이를 명령 종료로 해석합니다. 쉘은 이렇게 실행됩니다
curl -Ss -o txt https://pgl.yoyo.org/adservers/serverlist.php?showintro=0
이어서
hostformat=hosts | grep 127
후자는 hostformat=hosts
출력이 없는 유효한 명령이므로 명백한 오류 없이 작동합니다.
인용은 또한 ?
문제를 방지합니다(와일드카드입니다).