ฉันเพียงรู้ของสองวิธีและalias foo=bar
function foo() { bar }
เหตุผลที่ฉันถามคือ - ทั้งหมดในเซสชัน bash ของฉัน - ฉันไม่สามารถเรียกใช้ln
คำสั่งได้เนื่องจากbash
มีข้อผิดพลาด-bash: /usr/local/.../ln: No such file or directory
(ซึ่ง/usr/local/.../
เป็นหนึ่งในรายการในPATH
ตัวแปรสภาพแวดล้อมของฉัน)
มันไม่ใช่PATH
ปัญหาเพราะถ้าฉันเรียกใช้which ln
มันจะเอาท์พุทไบนารีที่คาดหวังของ/usr/bin/ln
(ซึ่งฉันสามารถทำงานได้ดีถ้าฉันระบุเส้นทางที่แน่นอน)
ฉันยังตรวจสอบln
ในของฉันalias
และfunction
ประกาศและไม่มีอะไร:
$ declare -f | grep ln
$ alias | grep ln
ปัญหากำลังเกิดขึ้นในเซสชัน bash เดียว ถ้าฉันเริ่มเชลล์ใหม่มันจะทำงานได้ดีอีกครั้ง แต่ฉันอยากรู้ว่าอะไรทำให้เกิดปัญหานี้ในทันทีในเซสชั่นของการทุบตีนี้
ความคิดใด ๆ เกี่ยวกับสิ่งที่อาจทำให้เกิดสิ่งนี้
type ln
ฉันได้รับln is hashed (/usr/local/.../ln)
ซึ่งดูเหมือนจะเป็นปัญหา แต่มันหมายความว่าอะไร "hashed"? ฉันไม่เคยได้ยินเกี่ยวกับคุณสมบัตินั้นในการทุบตี