从bash运行“ lessc”时出现“找不到命令”


12

我已经lessc通过npmNode.js软件包管理器安装了,并且当我lessc从终端运行时使用

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

它完美地工作。
但是,当我将这个完全相同的命令放在bash脚本中时less.sh,它将返回错误

lessc : command not found.

另外,我需要从bash脚本运行此命令,因为incron每次修改它们时,我用来重新编译我的less脚本的程序无法运行上述命令,我认为这可能是由于在命令中处理空格的怪异方法。


无法正常运行的脚本在可以正常运行的同一终端中lessc运行,或者以其他某种方式运行(cron,启动器,Alt-F2等)?
enzotib

命令结尾处有一个反引号。这个错字是只在这里还是在您的less.sh中?
elmicha 2011年

是的,背景是错字。@enzotib在脚本的运行位置是否重要,是否会更改任何可能导致上述错误的内容?
俚语

是的,这很重要。在不同情况下,您可以具有不同的路径。
enzotib

谢谢,研究了$ PATH变量后,我发现lessc位于“ / opt / lessc / bin / lessc”中,需要将其添加到$ PATH中。
俚语

Answers:


7

“ lessc”可执行文件在哪里?做:

type -p lessc

并记下该目录,并找出该目录添加到PATH的位置。我认为bash和incron不会以相同的方式来获取安装文件(.bashrc等)。阅读Bash手册页的INVOCATION部分描述了bash如何找到其启动文件。通过incron来源进行的快速grep显示,它没有提及.bashrc或.bash_profile。

您可以将脚本中的“ lessc”命令更改为:

/actual/path/to/lessc

您通过找到的

type -p lessc

或通过使用bash文件中的命令“ PATH = $ PATH:/ actual / path / to / lessc /”将“ / actual / path / to / lessc /”添加到$ PATH。并感谢您将其发布为答案(而非评论)。
俚语

21
npm install -g less

这将在全球范围内安装Less.js。也许您已经尝试过了,但是它不在http://lesscss.org/上的文档中;我不得不在FreeNode上的#node.js中询问。


我在ubuntu终端中执行了您的命令,但收到了npm ERR!拒绝删除:/ usr / bin / lessc不在/ usr / lib / node_modules / less中文件存在:/ usr / bin / lessc将其移开,然后重试。npm ERR!系统Linux 3.2.0-90-generic-pae npm ERR!命令“ / usr / bin / node”“ / usr / bin / npm”“安装”“ -g”“更少” npm ERR!cwd / home / best npm ERR!节点-v v0.10.40 npm ERR!npm -v 1.4.28 npm错误!路径/ usr / bin / lessc npm ERR!代码EEXIST npm ERR!错误代码0
DaSaDiYa ChaiTAnYa

0

在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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.