बाश पथ अजीब अभिनय


5

मैं openscadकमांड लाइन से चलने की कोशिश कर रहा हूं और यह एक त्रुटि फेंकता है, लेकिन अगर मैं रिपोर्ट किए गए संपूर्ण पथ को टाइप करता हूं तो यह नीचे दिखाए अनुसार काम करता है।

[dataproc@Euclid ~]$ which openscad
/usr/bin/openscad
[dataproc@Euclid ~]$ openscad
bash: /usr/local/bin/openscad: No such file or directory
[dataproc@Euclid ~]$ /usr/bin/openscad
[dataproc@Euclid ~]$ #this worked

मैं पूरी तरह से स्पष्ट हूं कि यहां क्या हो रहा है, किसी भी मदद की बहुत सराहना की जाएगी।

bash  which 

4
क्या type openscadउत्पादन करता है ?
क्रिस एबरले

1
echo $PATH

जवाबों:


6

whichनिहित है; यह एक आदर्श स्थिति के आधार पर चीजों की रिपोर्ट कर सकता है क्योंकि आपकी शेल स्टार्टअप फाइलों से चमकती है, जबकि कुछ संभावनाएं गायब हैं और मानक फाइलों द्वारा नहीं किए गए किसी भी बदलाव को नहीं पकड़ती हैं। typeयह देखने के लिए प्रयोग करें कि शेल वास्तव में क्या सोच रहा है।

2@mress:1 B$ type which
which is /usr/bin/which

बाहरी आदेश केवल यह नहीं बता सकते हैं कि वास्तव में क्या होगा, क्योंकि उन्हें आपकी स्टार्टअप फ़ाइलों के आधार पर फ़ंक्शन और उपनामों का अनुमान लगाना होगा और autoloadतंत्र के लिए बनाई गई चीजों के बारे में नहीं पता होगा ; आपको स्वयं शेल से पूछने की आवश्यकता है कि वह क्या करेगा।

2@mress:2 B$ type type
type is a shell builtin

आपने जो कुछ भी लिखा है वह सही है, लेकिन इसका जवाब नहीं दिया कि उसका बैश साधारण "ओपनस्कैड", "/ यूएसआर / लोकल / बिन / ओपनस्कैड: ऐसी कोई फ़ाइल या निर्देशिका" के लिए क्यों लौट रहा है।

@kobame: न तो मैं और न ही किसी और को इसका उत्पादन जानने के बिना जवाब पता चल सकता है type openscad। जो मैंने समझाने की कोशिश की; जाहिर है मैं असफल रहा।
geekosaur

[डेटाप्रोक @ यूक्लिड ~] $ प्रकार के ओपनस्कैड ओपनकैड हैशेड (/ usr / लोकल / बिन / ओपनसैड) है

मुझे यकीन नहीं है कि "ओपनस्कैड हैशेड" का क्या मतलब है, लेकिन कमांड के लिए कोई अन्य नहीं था। त्वरित प्रतिक्रिया के लिए आप सभी का धन्यवाद।

@ शॉन: भागो hash -rऔर फिर type openscadसे। ऐसा लगता है कि यह हो सकता है /usr/local/bin, स्थानांतरित हो गया है, और शेल ने अपने आंतरिक स्थान को अपडेट नहीं किया हैश।
14

0

अपने .profile (.bashrc, आदि) को जाने बिना, केवल अनुमान लगाना, कि आप कहीं हैं

alias openscad=/usr/local/bin/openscad

और यही वजह है कि आपका बैश रन / usr / लोकल / बिन / ओपनस्कैड और डिफ़ॉल्ट इन / usr / बिन नहीं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.