2011-04-20 48 views
1

我正在研究一個shell腳本來優化我在Web /前端項目上的構建過程。sass - 觀察過程鎖定了我的終端窗口

我使用sass來增強css開發和html5boilerplate構建腳本來優化開發。

我試圖讓腳本執行以下操作。 1.檢查青菜--watch啓用,如果沒有運行

sass --watch file.scss:file.css 

2. cd到build文件夾,然後運行Ant構建

的問題是,青菜--watch鎖死終端和該腳本不會進入螞蟻構建,直到我擊中Control-C停止sass。

我試過'xterm'爲sass產生一個新的終端窗口,但是xterm在我的mac上打開了X-11應用程序並且什麼也沒有觸發。

還有另一種打開終端窗口的方法嗎?有沒有辦法讓sass線程?我真的想運行我的腳本並返回到命令提示符,以便我可以整天重複我的命令並保持構建過程順利進行。

回答

9

這是在Unix/Linux環境下?然後嘗試在後臺運行sass命令,方法是追加'&'(後臺運行)字符。 I.E.

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 

最後,如果你的青菜--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 

的crontab是有點棘手。如果您認爲您可以使用它們,最好閱讀手冊頁,其他在線幫助,如果您遇到困難,請發送http://unix.stackexchange.com以獲得幫助。

我希望這會有所幫助。

+1

這裏還有一個因素。 sass --watch命令的作用是監聽.sass文檔的更改,然後在每次更改時保存一個新的.css文件。sass --watch終端窗口在終端窗口中提供狀態更新,如果您的.sass文檔存在語法問題,將顯示錯誤。考慮到這一點,我想我不想在後臺運行sass。一個新的終端窗口將是最好的。 – DrANoel 2011-04-21 18:17:57

+0

查看我的進一步修改 – shellter 2011-04-21 21:29:11