7
เหตุใดจึงมีความแตกต่างในเวลาดำเนินการของเสียงก้องและแมว?
การตอบคำถามนี้ทำให้ฉันถามคำถามอื่น: ฉันคิดว่าสคริปต์ต่อไปนี้ทำสิ่งเดียวกันและอันที่สองควรเร็วกว่ามากเพราะการใช้ครั้งแรกcatที่ต้องการเปิดไฟล์ซ้ำไปซ้ำมา แต่อย่างที่สองเปิดไฟล์เท่านั้น เพียงครั้งเดียวและเพียงแค่ก้องตัวแปร: (ดูหัวข้อการปรับปรุงสำหรับรหัสที่ถูกต้อง) ครั้งแรก: #!/bin/sh for j in seq 10; do cat input done >> output ประการที่สอง: #!/bin/sh i=`cat input` for j in seq 10; do echo $i done >> output ในขณะที่อินพุตประมาณ 50 เมกะไบต์ แต่เมื่อฉันลองครั้งที่สองมันก็ช้าเกินไปเพราะการสะท้อนตัวแปรiเป็นกระบวนการที่ยิ่งใหญ่ ฉันยังมีปัญหากับสคริปต์ที่สองเช่นขนาดของไฟล์ที่ส่งออกต่ำกว่าที่คาดไว้ ฉันยังตรวจสอบหน้า man ของechoและcatเปรียบเทียบ: echo - แสดงบรรทัดข้อความ cat - เชื่อมไฟล์และพิมพ์บนเอาต์พุตมาตรฐาน แต่ฉันไม่ได้รับความแตกต่าง ดังนั้น: ทำไมแมวถึงเร็วขนาดนี้และเสียงก้องช้าในบทที่สอง? …