2012-01-01 11 views
9

OSX टर्मिनल में:बैश पाइपिंग संकेत देता है आदेश नहीं मिला है, कभी कभी

du -h | sort -nr 
-bash:  sort: command not found 

which sort 
/usr/bin/sort 

अजीब बात है: मैं त्रुटि उत्पन्न होने की कोशिश की और यह पूरी तरह यादृच्छिक हो रहा है। मेरे पथ गूँजती:

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/git/bin:/usr/texbin:/Users/sytycs/.rvm/bin 

यह केवल जब पाइपिंग होता है और साथ grep, more, less आदि किसी भी विचार यह है कि क्या कारण है क्या होता है?

उत्तर

23

वह स्थान एक स्थान नहीं है। मिटाएं और इसे बदलें।

+0

हाय, आपके उत्तर के लिए धन्यवाद। मुझे यकीन नहीं था कि "मिटाएं और इसे प्रतिस्थापित करें" के साथ आपका क्या मतलब था, लेकिन मैंने "|" और "सॉर्ट" के बीच की जगह को हटा दिया और ऐसा लगता है कि यह काम कर रहा है। क्या आप समझा सकते हैं कि क्यों? – wpp

+0

क्योंकि यह एक जगह नहीं है, यह केवल * दिखता है * एक जैसा। –

+0

कभी-कभी यह कैसे काम करता है? – wpp

27

ऐसा संभवतः होता है क्योंकि आप गैर-यूएस लेआउट के साथ एक कीबोर्ड लेआउट का उपयोग करते हैं (मेरे साथ भी हुआ)। जर्मन लेआउट पर, पाइप, Alt + साथ लिखा गया इसलिए संभावना अधिक होती है कि आप Alt + अंतरिक्ष प्रेस बाद में है, जो एक non-breaking space का उत्पादन करेगा।

एक त्वरित समाधान: अपने ~/.inputrc करने के लिए लाइन

"\xC2\xA0": " " 

जोड़ें। यह गैर-ब्रेकिंग रिक्त स्थान को सामान्य लोगों को मैप करेगा जो समस्या को हल करना चाहिए।

यदि आप अधिक जानकारी चाहते हैं (या यदि आप इस तरह के मुद्दों को ट्रैक करने में रुचि रखते हैं, तो मैंने कुछ समय पहले a blog post लिखा था)।

+0

धन्यवाद @ माइकल मैं अभी भी इस बार हर बार दौड़ता हूं। – wpp

+1

बहुत बढ़िया उत्तर +1 – hitzg

0

~/.inputrc के साथ चाल zsh के लिए काम नहीं करती है। लेकिन यहां आप alt + space टाइप करते समय एक स्थान भेजने के लिए iTerm को कॉन्फ़िगर कर सकते हैं, उदाहरण के लिए

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