วิธีไพพ์เอาต์พุตของคำสั่ง linux กลับไปยังคำสั่งที่ต้องการล่วงหน้า


2

คำสั่ง linux

nc -l 8090 | (read METHOD URI PROTOCOL ; echo "method: $METHOD" ; echo "path: $URI" ; echo "prot: $PROTOCOL")

ฟังพอร์ต 8090 และเมื่อฉันพิมพ์บางอย่างเช่น http://127.0.0.1:8090/path/to/nowhere ในเบราว์เซอร์ของฉันมันพิมพ์ข้อมูลบางอย่างเกี่ยวกับคำขอ HTTP ในเทอร์มินัล ฉันสามารถพิมพ์บางอย่างในหน้าต่างเทอร์มินัลซึ่งหลังจากนั้น Ctrl + C จะแสดงในเบราว์เซอร์

สิ่งที่ฉันต้องการคือไพพ์เอาท์พุทของคำสั่ง echo กลับไปที่ stdin ของ nc ดังนั้นมันจะแสดงในเบราว์เซอร์ มีวิธีการทำเช่นนี้?

คำตอบ:


2

ท่อที่มีชื่อเป็นเพื่อนของคุณ!

mkfifo ncloop
nc -l 8090 < ncloop | (read METHOD URI PROTOCOL ; echo "method: $METHOD" ; echo "path: $URI" ; echo "prot: $PROTOCOL") > ncloop

(ทดสอบใน OS X 10.8.2 แต่ควรใช้กับระบบปฏิบัติการ Unix)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.