เมื่อฉันใช้type
คำสั่งเพื่อตรวจสอบว่าcat
เป็นเชลล์ในตัวหรือโปรแกรมภายนอกฉันได้รับผลลัพธ์ด้านล่าง:
-$ type cat
cat is hashed (/bin/cat)
-$
นี่หมายความว่าcat
เป็นโปรแกรมภายนอก/bin/cat
หรือไม่
ฉันสับสนเพราะเมื่อฉันตรวจสอบผลลัพธ์ด้านล่างecho
เพื่อดูว่ามันเป็นbuilt-in
โปรแกรม/bin/echo
-$ type echo
echo is a shell builtin
-$ which echo
/bin/echo
-$
ดังนั้นฉันไม่สามารถใช้ตรรกะที่/bin/cat
จำเป็นต้องหมายถึงโปรแกรมภายนอกเพราะเสียงก้องเป็น/bin/echo
แต่ยังคงเป็นในตัว
แล้วฉันจะรู้ได้อย่างไรว่าcat
มันคืออะไร? ในตัวหรือภายนอก?
type which
สามารถให้คำตอบกับคุณได้ทำไมwhich
ไม่ให้คำตอบกับคุณ
cat
และls
/ ถูกเขียนโดย Stallman ตัวเอง คุณจะประหลาดใจกับสิ่งที่เขาเขียน อย่าลืมว่าเขาเขียนคอมไพเลอร์เวอร์ชั่นแรกในวันนี้ซึ่งเป็นคอมไพเลอร์ที่ดีที่สุดในโลกที่คอมไพล์ทุก ๆ อย่างและแกนกลางส่วนใหญ่ เพียงแค่พูดว่า