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

DrA*_*oel 1 ant shell build sass

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

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

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

sass --watch file.scss:file.css
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

she*_*ter 9

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

sass --watch file.scss:file.css &
Run Code Online (Sandbox Code Playgroud)

编辑 - 扩展监控的可能性

下一个层次是使它独立于它的起始位置.

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

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

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

观看当前的活动.

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

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

最后,如果你的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 
Run Code Online (Sandbox Code Playgroud)

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

我希望这有帮助.

  • 还有一个因素。sass --watch 命令的作用是监听 .sass 文档的更改,然后在每次进行更改时保存一个新的 .css 文件。sass --watch 终端窗口在终端窗口中提供状态更新,如果您的 .sass 文档存在语法问题,则会显示错误。考虑到这一点,我想我不想在后台运行 sass。最好有一个新的终端窗口。 (2认同)