เหตุใดคำสั่ง WHICH จึงไม่ให้เส้นทางที่คาดหวัง

ฉันได้ติดตั้ง vim 7.3 ใหม่ในระบบที่ ~/tools/bin มีอีก vim 7.2 ใน /usr/bin/vim

ฉันได้เพิ่ม ~/tools/bin ใน $PATH และเมื่อฉันพิมพ์ vim ในเทอร์มินัล มันจะเปิด vim 7.3 ได้อย่างถูกต้อง แต่เมื่อฉันใช้ which vim เพื่อค้นหาเส้นทางของ vim มันให้ /usr/bin/vim ซึ่งควรเป็น vim 7.2 ฉันคาดว่ามันควรจะเป็น /home/zijwu/tools/bin/ เป็นกลุ่ม (~/tools/bin/vim)

ต่อไปนี้เป็นคำสั่งและเอาต์พุตจากเทอร์มินัล แล้วเหตุใดจึงให้เส้นทางไม่ถูกต้อง

>vim --version

VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Jul 11 2013 12:17:16)

>/usr/bin/vim --version

VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Nov 15 2012 00:32:35)

>~/tools/bin/vim --version

VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Jul 11 2013 12:17:16)

>echo $PATH

~/tools/bin:~/mercurial-2.6.3:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

>which vim

/usr/bin/vim

person ZijingWu    schedule 19.08.2013    source แหล่งที่มา
comment
อันไหนให้อะไร?   -  person stark    schedule 19.08.2013
comment
มันให้ผลลัพธ์ดังต่อไปนี้ /usr/bin/ซึ่ง   -  person ZijingWu    schedule 19.08.2013
comment
strace /usr/bin/which vim -- อาจน่าสนใจที่จะดูว่าเผชิญกับความท้าทายบางอย่างเมื่อดูไบนารี vim ที่อยู่ใน ~/tools/bin หรือไม่   -  person Brian Cain    schedule 19.08.2013


คำตอบ (1)


คุณตั้งค่า $PATH ไม่ถูกต้อง ในการดูรายการ $PATH ไม่มีการขยายเครื่องหมายตัวหนอน ดังนั้น ~/tools/bin จะค้นหา (อย่างมีประสิทธิภาพ) ./~/tools/bin ไม่ใช่ $HOME/tools/bin

person Chris Jester-Young    schedule 19.08.2013