จะตรวจสอบคำสั่งอะไรได้บ้าง?


9

ฉันมีสคริปต์เปลือกที่เรียกว่าในfoo.sh /usr/local/sbinนอกจากนี้ฉันใช้สคริปต์อื่นที่มีชื่อเดียวกัน /home/user/scriptsจะถูกเก็บไว้ใน

PATHทั้งสองเส้นทางอยู่ ฉันจะรู้ได้อย่างไรว่าสคริปต์ตัวใดตัวหนึ่งที่ทำงานเมื่อพิมพ์foo.shบนบรรทัดคำสั่ง ฉันมีอิทธิพลต่อมันได้หรือไม่

คำตอบ:


10

ไม่กี่วันที่ผ่านมาฉันพอใจกับคำตอบของฉัน ฉันก็รู้ว่าwhichคำสั่งนั้นไม่ได้ใช้เพื่อทดสอบว่ามีคำสั่งอยู่หรือไม่ ตอนนี้ฉันไม่พอใจกับคำตอบของฉันและฉันอ้างถึงคำตอบที่ยอดเยี่ยมนี้


ด้วยwhichคำสั่งง่ายๆ:

which foo.sh

หรือtypeคำสั่ง:

type foo.sh

และคุณสามารถมีอิทธิพลต่อสิ่งนี้ด้วยลำดับของเส้นทางใน$PATHหรือผ่านเส้นทางที่แน่นอนเมื่อสคริปต์เริ่ม EG

/home/user/scripts/foo.sh

ตัวอย่าง

หาก PATH ถูกกำหนดไว้ด้านล่าง

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

และคุณเริ่มต้นสคริปต์หรืออย่างอื่นที่อยู่ใน/usr/local/binและใน/usr/binสคริปต์ใน/usr/local/binลำดับความสำคัญที่สูงขึ้น


1
การพูดbashและzshยังมีในtypeตัว; แทนในzsh which, แตกต่างจากbashเป็นในตัว (และไม่ได้/usr/bin/which)
คอส


@muru ขอบคุณ เล็กน้อยฉันรู้เกี่ยวกับมันแล้ว แต่ไม่ได้อยู่ในรายละเอียด ฉันได้เพิ่มมุมมองของฉันในคำตอบของฉัน ขอบคุณอีกครั้ง.
AB
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.