ฉันไพพ์บรรทัดในสคริปต์ทุบตีและต้องการตรวจสอบว่าไพพ์มีข้อมูลหรือไม่ก่อนป้อนเข้าโปรแกรม
กำลังค้นหาฉันพบtest -t 0
แต่มันใช้งานไม่ได้ที่นี่ ส่งคืนค่าเท็จเสมอ ดังนั้นจะแน่ใจได้อย่างไรว่าท่อมีข้อมูลหรือไม่
ตัวอย่าง:
echo "string" | [ -t 0 ] && echo "empty" || echo "fill"
เอาท์พุท: fill
echo "string" | tail -n+2 | [ -t 0 ] && echo "empty" || echo "fill"
เอาท์พุท: fill
ซึ่งแตกต่างจากวิธีมาตรฐาน / มาตรฐานเพื่อทดสอบว่าก่อนหน้านี้ท่อที่ผลิตได้หรือไม่ อินพุตจะต้องเก็บรักษาไว้เพื่อส่งผ่านไปยังโปรแกรม นี่เป็นการสรุปวิธีการไพพ์เอาท์พุทจากโปรเซสหนึ่งไปยังอีกโปรเซสเท่านั้น ซึ่งมุ่งเน้นการส่งอีเมล