Bash脚本不会编译LESS

时间:2014-05-28 01:34:05

标签: bash sed less

我有一个前开发者留给我的bash脚本:

#!/bin/bash

for f in styles/*.less styles/brand/*.less
do
  filename=$(basename "$f")
  if [ "${filename:0:1}" != '_' ]; then
    lessc --no-color -x "${f}" "$(sed 's|^=src/styles/|httpdocs/css/|;s/.less$/.css/' <<< $f)"
  fi
done

文件夹结构如下所示:

-httpdocs
   -css
       -brand
            brand1.css
            brand2.css
            etc...
       global.css
-src
    -styles
        -brand
            brand1.css
            brand1.less
            brand2.css
            brand2.less
        _reset.less
        _style.less
        etc...
        global.css
        global.less
    compile_less.sh <--the bash script in question

我正在对global.less进行更改,如果我正确理解了脚本,它应该遍历styles文件夹中的每个文件,如果它不是以下划线开头,则使用less和使用stream editor命令将结果转储到样式和httpdocs文件夹中的.css文件中,根据文件名(brand1.less编译并转储到brand1.css)。

问题是,脚本似乎没有做任何。我是bash脚本的新手,但似乎可能只有几个错误可以修复它(我在sed命令中某处猜测)。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

我假设您的脚本位于Clive所暗示的根目录中。 在调试模式下运行它可能会告诉您根本原因。 如果没有,请使用此命令的输出进行更新: bash -x compile_less.sh 附:我无法添加评论,因此张贴作为答案。