我正在开发一个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?我真的想运行我的脚本并返回命令提示符,这样我就可以整天重复我的命令并保持构建过程顺利运行。
答案 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上发帖以获得帮助。
我希望这会有所帮助。