创建一个bash脚本,将SCSS编译为带参数的CSS

时间:2015-03-16 21:21:23

标签: bash

如何创建一个bash脚本来将SCSS编译成可以使用不同文件名和路径的CSS?

例如,我运行此命令将我的SCSS文件编译到另一个目录中的CSS文件中:

sass test.scss ../css/test2.css

一遍又一遍地运行它很乏味,那么我该怎样做才能让这更容易呢?我是bash脚本的新手。

1 个答案:

答案 0 :(得分:1)

这就是你要找的东西吗?

#!/bin/bash
f=${1:-test}
sass ${f}.scss ../css/${f}.css

此脚本运行sass FILENAME.scss ../css/FILENAME.css。如果FILENAME(没有扩展名)未被第一个参数设置,则默认为test。您可以轻松更新它以接受多个输入文件。

但是你不会节省太多时间,因为你仍然需要调用该脚本而不是sass。用另一个命令替换命令并不能完成任何事情。

使用!sass代替重新运行同一文件或!!上的最后一个sass命令,以重新运行上一个命令。查看bash history

使用方法:
将此脚本保存到文件中,例如xx 使xx可执行文件:chmod u+x xx
在测试时不带参数运行它:./xx
使用不带扩展名的文件名运行它:./xx myscssfile

这是另一个版本,它将文件名列表作为输入或默认为test.scss:

#!/bin/bash
function dosass {
    if [ $# -eq 0 ]; then return; fi
    b=${1%.scss}
    sass $b.scss ../css/$b.css
}
if [ $# -eq 0 ]; then
    dosass "test.scss"
else
    for f; do dosass $f; done
fi