เมื่อฉันใช้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 ตัวเอง คุณจะประหลาดใจกับสิ่งที่เขาเขียน อย่าลืมว่าเขาเขียนคอมไพเลอร์เวอร์ชั่นแรกในวันนี้ซึ่งเป็นคอมไพเลอร์ที่ดีที่สุดในโลกที่คอมไพล์ทุก ๆ อย่างและแกนกลางส่วนใหญ่ เพียงแค่พูดว่า