sass --watch进程锁定了我的终端窗口

时间:2011-04-20 22:29:09

标签: shell ant build sass

我正在开发一个shell脚本来优化我在Web /前端项目上的构建过程。

我正在使用sass来增强css开发和html5boilerplate构建脚本以优化开发。

我正在尝试让脚本执行以下操作。 1.检查sass --watch是否启用,如果没有运行

sass --watch file.scss:file.css

2。 cd进入build文件夹并运行ant build

问题是sass --watch锁定了终端,脚本不会进入ant构建,直到我点击Control-C来阻止sass。

我已经尝试'xterm'为sass生成一个新的终端窗口,但xterm在我的mac上打开X-11应用程序并且没有任何内容。

还有另一种打开终端窗口的方法吗?有没有办法线程sass?我真的想运行我的脚本并返回命令提示符,这样我就可以整天重复我的命令并保持构建过程顺利运行。

1 个答案:

答案 0 :(得分:9)

这是在Unix / Linux环境下?然后通过附加'&'尝试在后台运行你的sass命令(run-in-background)char。 即。

sass --watch file.scss:file.css &

编辑 - 扩展监控的可能性

下一个层次是让它独立于它的起始位置。

nohup sass --watch file.scss:file.css > ${logDir}/$(/bin/date +%Y%m%d.%H%M).sass_watch.log 2>&1 &

您可以启动sass --watch并关闭窗口,它将继续运行。 稍后,如果您需要检查进度,可以使用

tail -f ${logDir}/$(/bin/date +%Y%m%d.%H%M).sass_watch.log

观看当前活动。

如果您怀疑某些事情发生了一段时间,您可以指定要包含在“向后滚动”中的行数,即

tail -1000 -f ${logDir}/$(/bin/date +%Y%m%d.%H%M).sass_watch.log

最后,如果你的sass --watch支持某种时间段(例如,在24小时后停止),你可以创建一个crontab条目,这样你就可以随时运行--watch你可以随时显示你的经理究竟是什么/何时找到系统。

编辑crontab,添加条目

01 00 * * * { sass --watch --time 24hrs file.scss:file.css ; } > ${logDir}/$(/bin/date +%Y%m%d.%H%M).sass_watch.log 2>&1 

Crontabs有点棘手。如果您认为可以使用它们,最好阅读手册页,其他在线帮助,如果卡住了,请在http://unix.stackexchange.com上发帖以获得帮助。

我希望这会有所帮助。