2011-10-10 19 views
8

Tôi chưa bao giờ có vấn đề này trước khi với các máy khác của tôi, nhưng vì một lý do tại ZSH bất cứ khi nào tôi gõZsh 'mà rvm` hoặc `mà gem` trả về nội dung chức năng thay vì đường dẫn

which gem 

hoặc

which rvm 

tôi nhận được các nội dung chức năng:

gem() { 
local result 
command gem "[email protected]" 
result="$?" 
hash -r 
return $result 
} 

thay vì đó là con đường. Đối với cuộc sống của tôi, tôi không thể tìm ra lý do tại sao điều này xảy ra.

Nếu tôi chuyển sang bash, tôi không gặp phải vấn đề này.

Trả lời

8

Đây là hành vi bình thường đối với zsh. Phần tích hợp which tương đương với whence -c, hiển thị định nghĩa của hàm. Sử dụng whence, có thể với sự kết hợp các tùy chọn không bao gồm -f hoặc -c, nếu bạn không muốn điều này. Ví dụ: whence -w gem sẽ hiển thị gem: function. Nếu bạn chỉ muốn tìm kiếm các tệp thực thi bên ngoài (và không phải bí danh, các từ hoặc hàm được đặt sẵn), hãy sử dụng whence -v.

+3

Cảm ơn. Điều đó chắc chắn xóa mọi thứ cho tôi. Tôi tìm thấy bằng cách sử dụng tùy chọn '-p' với' which' cho tôi kết quả mong đợi. Điều tương tự cũng đúng với việc sử dụng '-p' với' whence'. – user770148

Các vấn đề liên quan