2011-10-10 6 views
8

मैंने पहले मेरे अन्य मशीनों के साथ लेकिन ZSH में किसी कारण जब भी मैं टाइपZsh `जो rvm` या` जो gem` रिटर्न समारोह सामग्री के बजाय पथ

which gem 

या के लिए इस समस्या को कभी नहीं मिला है

which rvm 

मैं समारोह सामग्री मिलती है:

gem() { 
local result 
command gem "[email protected]" 
result="$?" 
hash -r 
return $result 
} 
यह करने के बजाय

पथ है। मेरे जीवन के लिए मैं यह नहीं समझ सकता कि यह क्यों हो रहा है।

यदि मैं बैश पर स्विच करता हूं तो मुझे इन समस्याओं का सामना नहीं होता है।

उत्तर

8

यह zsh के लिए सामान्य व्यवहार है। which अंतर्निहित whence -c के समतुल्य है, जो कार्यों की परिभाषाओं को दिखाता है। whence का उपयोग करें, संभवतः विकल्पों के संयोजन के साथ जिसमें -f या -c शामिल नहीं है, यदि आप यह नहीं चाहते हैं। उदाहरण के लिए whence -w gemgem: function प्रदर्शित करेगा। यदि आप केवल बाहरी निष्पादन योग्य (और उपनाम, अंतर्निहित, आरक्षित शब्द या फ़ंक्शंस नहीं) खोजना चाहते हैं, तो whence -v का उपयोग करें।

+3

धन्यवाद। यह निश्चित रूप से मेरे लिए चीजों को मंजूरी दे दी। मैंने '-पी' विकल्प का उपयोग करके 'जो' ने मुझे वह परिणाम दिया जो मुझे उम्मीद थी। 'Asce' के साथ' -p' का उपयोग करने के लिए भी यह सच प्रतीत होता है। – user770148

संबंधित मुद्दे