在bash中运行"lessc"时出现"command not found"的错误提示。

我已经通过npm(Node.js包管理器)安装了lessc,并且当我在终端中运行lessc时,使用以下命令:
lessc /var/www/less/style.less /var/www/css/style.css

它完美地运行。 然而,当我将这个完全相同的命令放入一个名为less.sh的bash脚本中时,它返回错误信息:

lessc: command not found.

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

非工作脚本是在同一个终端中运行,其中lessc有效,还是以其他方式(cron、启动器、Alt-F2、其他)运行? - enzotib
你的命令末尾有一个反引号。这个错别字只在这里还是在你的less.sh文件中也有? - elmicha
是的,反引号是一个打字错误。@enzotib脚本运行的位置是否重要?这会改变可能导致上述错误的任何内容吗? - slang
是的,这很重要。在不同的情况下,你可以有不同的路径选择。 - enzotib
谢谢,在研究了$PATH变量之后,我发现lessc位于"/opt/lessc/bin/lessc",需要将其添加到$PATH中。 - slang
3个回答

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" "install" "-g" "less" npm ERR! 当前工作目录 /home/best npm ERR! node -v v0.10.40 npm ERR! npm -v 1.4.28 npm ERR! 路径 /usr/bin/lessc npm ERR! code EEXIST npm ERR! not ok code 0 - DaSaDiYa ChaiTAnYa

"lessc" 可执行文件在哪里?请执行以下操作:
type -p lessc

注意目录,并找出该目录添加到您的PATH中的位置。我认为bash和incron不会以相同的方式源代码设置文件(.bashrc等)。阅读Bash手册,INVOCATION部分描述了bash如何找到其启动文件。快速通过incron源代码进行grep显示它没有提到.bashrc或.bash_profile。
您可以将脚本中的"lessc"命令更改为:
/actual/path/to/lessc

通过你找到的
type -p lessc

或者将 "/实际/路径/到/lessc/" 添加到 $PATH 中,使用命令 "PATH=$PATH:/实际/路径/到/lessc/" 在 bash 文件中。感谢您把它作为答案发布(而不是评论)。 - slang

在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