อย่าใช้cat
ตามที่บางคนกล่าวถึงที่นี่ cat
เป็นโปรแกรม
ในขณะที่echo
และprintf
เป็น bash (เชลล์) ในตัว การเปิดตัวโปรแกรมหรือสคริปต์อื่น ๆ (ดังกล่าวข้างต้น) หมายถึงสร้างกระบวนการใหม่ด้วยค่าใช้จ่ายทั้งหมด การใช้ builtins ฟังก์ชั่นการเขียนค่อนข้างถูกเพราะไม่จำเป็นต้องสร้าง (ดำเนินการ) กระบวนการ (- สภาพแวดล้อม)
opner ถามว่า "มีเครื่องมือมาตรฐานในการส่งออก ( ไปป์ ) ถึง stderr" หรือไม่คำตอบที่ได้คือ: ไม่ ... ทำไม? ... rediredcting pipes เป็นแนวคิดที่ยอดเยี่ยมในระบบเช่น unix (Linux ... ) และ bash (sh) สร้างขึ้นบนแนวคิดเหล่านี้
ฉันเห็นด้วยกับที่เปิดที่เปลี่ยนเส้นทางด้วยสัญลักษณ์เช่นนี้: &2>1
ไม่พอใจมากสำหรับโปรแกรมเมอร์ที่ทันสมัย แต่นั่นเป็นเรื่องที่น่าตกใจ Bash ไม่ได้ตั้งใจที่จะเขียนโปรแกรมขนาดใหญ่และมีประสิทธิภาพ แต่ก็มีไว้เพื่อช่วยให้ผู้ดูแลระบบทำงานด้วย keypresses น้อยกว่า ;-)
และอย่างน้อยคุณสามารถเปลี่ยนเส้นทางได้ทุกที่ในบรรทัด:
$ echo This message >&2 goes to stderr
This message goes to stderr