ยูทิลิตีบรรทัดคำสั่งจำนวนมากสามารถรับอินพุตได้จากไพพ์หรือเป็นอาร์กิวเมนต์ชื่อไฟล์ สำหรับเชลล์สคริปต์แบบยาวฉันพบว่าการเริ่มต้นลูกโซ่ด้วย a cat
ทำให้อ่านได้ง่ายขึ้นโดยเฉพาะถ้าคำสั่งแรกต้องการอาร์กิวเมนต์หลายบรรทัด
เปรียบเทียบ
sed s/bla/blaha/ data \
| grep blah \
| grep -n babla
และ
cat data \
| sed s/bla/blaha/ \
| grep blah \
| grep -n babla
วิธีหลังมีประสิทธิภาพน้อยลงหรือไม่ ถ้าเป็นเช่นนั้นความแตกต่างมากพอที่จะใส่ใจว่าสคริปต์รันหรือไม่พูดเป็นวินาทีหรือไม่ ความแตกต่างในการอ่านไม่มาก
cat
instantiating อย่างไรก็ตามฉันคิดว่าคำถามที่ใหญ่กว่าที่นี่คือการอ่านรหัสซึ่งมักจะมีความสำคัญมากกว่าประสิทธิภาพ เมื่อเร็วขึ้นสามารถเขียนได้สวยกว่าทำไมไม่? การชี้ให้เห็นปัญหาโดยcat
ทั่วไปจะนำไปสู่ผู้ใช้ที่มีความเข้าใจที่ดีขึ้นเกี่ยวกับท่อและกระบวนการโดยทั่วไป มันคุ้มค่ากับความพยายามดังนั้นพวกเขาจึงเขียนโค้ดที่เข้าใจได้ในครั้งต่อไป
cat
ประเด็นของ Caleb เกี่ยวกับการใช้ฟังก์ชั่นและการเปลี่ยนเส้นทางแก้ปัญหาได้เช่นกัน)