"कमांड नहीं मिला" जब बैश से "लेस" चल रहा है


12

मैंने Node.js पैकेज मैनेजर के lesscमाध्यम से स्थापित किया है npm, और जब मैं lesscटर्मिनल का उपयोग करके चलाता हूं

lessc /var/www/less/style.less /var/www/css/style.css

यह पूरी तरह से काम करता है।
हालाँकि, जब मैं इस सटीक कमांड को बैश स्क्रिप्ट में डालता हूं, तो less.shयह त्रुटि देता है

lessc : command not found.

इसके अलावा, मुझे इस कमांड को बैश स्क्रिप्ट से चलाने की आवश्यकता है, क्योंकि incron, एक प्रोग्राम जिसे मैं अपनी कम स्क्रिप्ट को हर बार संशोधित करने के लिए उपयोग कर रहा हूं, वे ऊपर बताए गए कमांड को चलाने में असमर्थ हैं, जो मुझे विश्वास है कि इसके कारण हो सकता है कमांड में व्हाइट-स्पेस को संभालने के लिए अजीब तरीके।


गैर-कामकाजी स्क्रिप्ट उसी टर्मिनल में चलाया जाता है जहां lesscकाम करता है, या कुछ अन्य तरीकों से (क्रोन, एक लांचर, Alt-F2, अन्य)?
enzotib

आपके आदेश के अंत में एक बैकटिक है। क्या यह टाइपो केवल यहीं है या यह आपके कम में भी है।
इलीमि

हाँ बैकटिक एक टाइपो था। @enzotib को इससे कोई फर्क नहीं पड़ता कि स्क्रिप्ट कहां से चलाई जा रही है, और क्या यह कुछ भी बदल सकता है जो ऊपर उल्लिखित त्रुटि का कारण बन सकता है?
स्लैंग

हाँ, यह मायने रखता है। अलग-अलग स्थिति में आपके पास अलग-अलग PATH हो सकते हैं।
enzotib

धन्यवाद, $ PATH वैरिएबल पर शोध करने के बाद मैंने पाया कि लेस "/ ऑप्ट / लेस / बिन / लेससी" में था, जिसे $ PATH में जोड़ने की आवश्यकता थी।
स्लैंग

जवाबों:


7

"लेसक" निष्पादन योग्य कहां है? करना:

type -p lessc

और निर्देशिका पर ध्यान दें, और यह पता लगाएं कि आपके PATH में वह निर्देशिका कहाँ जोड़ी गई है। मुझे लगता है कि बैश और इन्क्रॉन आपकी सेटअप फ़ाइलों (.bashrc, आदि) को उसी तरह से सोर्स नहीं करते हैं। बैश मैन पेज को पढ़ना, इनवोकेशन सेक्शन बताता है कि कैसे बैश अपनी स्टार्टअप फाइल्स पाता है। इन्क्रॉन स्रोत के माध्यम से एक त्वरित grep दर्शाता है कि यह .bashrc या .bash_profile का उल्लेख नहीं करता है।

आप अपनी स्क्रिप्ट में "कम" कमांड को बदल सकते हैं:

/actual/path/to/lessc

कि आप के माध्यम से मिला

type -p lessc

या bash फ़ाइल में "PATH = $ PATH: / real / path / to / lessc /" कमांड का उपयोग करके "PATH = $ PATH" में "/ वास्तविक / पथ / / /c / $" जोड़ें। और पोस्ट करने के लिए धन्यवाद कि उत्तर के रूप में (टिप्पणी नहीं)।
स्लैंग

21
npm install -g less

यह विश्व स्तर पर लेस.जेएस स्थापित करता है। हो सकता है कि आपने यह पहले ही आज़मा लिया हो, लेकिन यह http://lesscss.org/ पर प्रलेखन में नहीं है ; मुझे FreeNode पर # node.js में चारों ओर से पूछना पड़ा।


मैं अपने आदेश को अपने ubuntu टर्मिनल में निष्पादित करता हूं लेकिन मुझे npm ERR मिला है! हटाने से इंकार करना: / usr / bin / lessc in / usr / lib / node_modules / less फाइल मौजूद नहीं है: / usr / bin / lessc इसे हटाएं, और पुनः प्रयास करें। npm ईआरआर! सिस्टम लिनक्स 3.2.0-90-जेनेरिक-पा एनपीएम ईआरआर! कमांड "/ usr / bin / node" "/ usr / bin / npm" "इंस्टॉल करें" "-g" "कम" npm ERR! cwd / होम / बेस्ट npm ERR! नोड -v v0.10.40 npm ERR! npm -v 1.4.28 npm ERR! पथ / यूएसआर / बिन / लेसक एनपीएम ईआरआर! कोड EEXIST एनपीएम ईआरआर! नहीं ठीक कोड 0
DaSaDiYa ChaiTAnYa

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