"Comando não encontrado" ao executar "lessc" no bash

12

Eu instalei lesscvia npmNode.j Package Manager e, quando executo lesscno terminal usando

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

funciona perfeitamente.
No entanto, quando eu coloco exatamente o mesmo comando em um script bash less.sh, ele retorna o erro

lessc : command not found.

Além disso, preciso executar esse comando a partir de um script bash, porque incronum programa que estou usando para recompilar meu script less cada vez que são modificados não pode executar o comando mencionado acima, que acredito ser causado por métodos estranhos para lidar com espaços em branco no comando.

calão
fonte
O script que não funciona é executado no mesmo terminal em que lesscfunciona ou de outras formas (cron, um iniciador, Alt-F2, outro)?
enzotib 26/09/11
Há um backtick no final do seu comando. Esse erro de digitação é apenas aqui ou também está no seu less.sh?
elmicha
sim, o backtick foi um erro de digitação. @enzotib importa de onde o script está sendo executado e isso mudaria algo que pudesse causar o erro mencionado acima?
gíria
Sim, isso importa. Em situações diferentes, você pode ter diferentes caminhos.
enzotib 26/09/11
Obrigado, depois de pesquisar a variável $ PATH, descobri que lessc estava em "/ opt / lessc / bin / lessc", que precisava ser adicionado a $ PATH.
gíria

Respostas:

7

Onde está o executável "lessc"? Faz:

type -p lessc

anote o diretório e descubra onde esse diretório foi adicionado ao seu PATH. Eu acho que o bash e o incron não fornecem seus arquivos de instalação (.bashrc, etc) da mesma maneira. Lendo a página de manual do Bash, a seção INVOCATION descreve como o bash encontra seus arquivos de inicialização. Um grep rápido através da fonte incron mostra que não menciona .bashrc ou .bash_profile.

Você pode alterar o comando "lessc" no seu script para:

/actual/path/to/lessc

que você encontrou via

type -p lessc
waltinator
fonte
Ou adicione o "/ real / caminho / a / lessc /" a $ PATH, usando o comando "PATH = $ PATH: / real / caminho / a / lessc /" no arquivo bash. E obrigado por postar isso como resposta (não como comentário).
gíria
21
npm install -g less

Isso instala o Less.js globalmente. Talvez você já tenha tentado isso, mas não está na documentação em http://lesscss.org/ ; Eu tive que perguntar em # node.js no FreeNode.

Brian Lacy
fonte
Eu executo seu comando no meu terminal ubuntu, mas recebi o erro npm ERR! Recusando excluir: / usr / bin / lessc não em / usr / lib / node_modules / less O arquivo existe: / usr / bin / lessc Mova-o para longe e tente novamente. 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 / melhor erro npm! nó -v v0.10.40 npm ERR! npm -v 1.4.28 npm ERR! caminho / usr / bin / lessc npm ERR! código EEXIST npm ERR! não ok código 0
DaSaDiYa ChaiTAnYa
0

no 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
Enrique San Martín
fonte