"Comando non trovato" quando si esegue "lessc" da bash


12

Ho installato lessctramite npmNode.js Package Manager e quando corro lesscdal terminale usando

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

funziona perfettamente.
Tuttavia, quando inserisco esattamente lo stesso comando in uno script bash less.sh, restituisce l'errore

lessc : command not found.

Inoltre, devo eseguire questo comando da uno script bash, perché incronun programma che sto usando per ricompilare il mio meno script ogni volta che vengono modificati, non è in grado di eseguire il comando menzionato sopra, che credo possa essere causato da metodi strani per la gestione degli spazi bianchi nel comando.


Lo script non funzionante viene eseguito nello stesso terminale in cui lesscfunziona, o in qualche altro modo (cron, un launcher, Alt-F2, altro)?
enzotib,

C'è un backtick alla fine del tuo comando. Questo refuso è solo qui o è anche nel tuo less.sh?
elmicha,

sì, il backtick era un errore di battitura. @enzotib ha importanza da dove viene eseguito lo script e cambierebbe qualcosa che potrebbe causare l'errore sopra menzionato?
gergo,

Sì, importa. In situazioni diverse puoi avere diversi PERCORSI.
enzotib,

Grazie, dopo aver studiato la variabile $ PATH, ho scoperto che lessc era in "/ opt / lessc / bin / lessc", che doveva essere aggiunto a $ PATH.
gergo

Risposte:


7

Dov'è l'eseguibile "lessc"? Fare:

type -p lessc

e prendere nota della directory e capire dove viene aggiunta quella directory al PERCORSO. Penso che bash e incron non generino i file di installazione (.bashrc, ecc.) Allo stesso modo. Leggendo la pagina man di Bash, la sezione INVOCATION descrive come bash trova i suoi file di avvio. Un rapido grep attraverso la fonte di incron mostra che non menziona .bashrc o .bash_profile.

Puoi modificare il comando "lessc" nel tuo script in:

/actual/path/to/lessc

che hai trovato tramite

type -p lessc

Oppure aggiungi "/ actual / path / to / lessc /" a $ PATH, usando il comando "PATH = $ PATH: / actual / path / to / lessc /" nel file bash. E grazie per averlo pubblicato come risposta (non come commento).
gergo

21
npm install -g less

Ciò installa Less.js a livello globale. Forse hai già provato questo, ma non è nella documentazione su http://lesscss.org/ ; Ho dovuto chiedere in giro in # node.js su FreeNode.


Eseguo il tuo comando nel mio terminale Ubuntu ma ho npm ERR! Rifiuto di eliminare: / usr / bin / lessc non in / usr / lib / node_modules / less Il file esiste: / usr / bin / lessc Spostalo e riprova. npm ERR! Sistema Linux 3.2.0-90-generic-pae npm ERR! comando "/ usr / bin / node" "/ usr / bin / npm" "install" "-g" "less" npm ERR! cwd / home / best npm ERR! nodo -v v0.10.40 npm ERR! npm -v 1.4.28 npm ERR! percorso / usr / bin / lessc npm ERR! codice EEXIST npm ERR! non ok codice 0
DaSaDiYa ChaiTAnYa

0

in lubuntu:

$ type -p lessc
$ lessc
El programa «lessc» no está instalado. Puede instalarlo escribiendo:
sudo apt-get install node-less
$ sudo apt-get install node-less
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.