${name=aaron} 如果name沒有定義,將name設(shè)成aaron。注意與前面的區(qū)別。
${name+aaron}如果name已經(jīng)定義,值為aaron,否則為null。有點(diǎn)奇怪,對吧?
${name?"not assigned"} 如果name沒有定義,顯示name:not assigned
有時雖然變量已經(jīng)定義了,但是個null值,這樣就不起作用了。可用通過在操作符(-,=,+,?)前加個:來解決。冒號的意思就是將null當(dāng)成未定義處理。
例子:
name=
echo ${name-aaron}
顯示空值
echo ${name:-aaron}
顯示aaron
* 匹配0多過個字符
? 匹配一個字符
[...] 匹配方括號中的任意一個字符,可用[ - ]表示字符范圍,如[1-3]表示匹配1,2,3 中的任意一個。
[!...] 匹配任意不在方括號中的字符。
例子: 文件處理成功后會加個前綴'_', 想要查看哪些文件沒被成功處理,可用命令:ls [!_]*
應(yīng)該說兩個團(tuán)隊都步入了正軌,雖然問題還有很多,雖然他們只應(yīng)用了部分敏捷實(shí)踐,但并不妨礙稱他們?yōu)槊艚輬F(tuán)隊。 敏捷團(tuán)隊是那些能夠利用敏捷實(shí)踐來解決項(xiàng)目問題,保證項(xiàng)目高質(zhì)量提交的團(tuán)隊。那些所謂的“我們做了TDD了,所以我們是敏捷開發(fā)”,“我們是敏捷開發(fā),所以我們沒有設(shè)計文檔“, 都是一葉障目,不見泰山。 敏捷開發(fā)是一種不斷自我反省,持續(xù)改進(jìn)的過程。所謂的stand up, iterative, retrospective, 都是它的一種表現(xiàn)形式而已,千萬別被這些所謂的形式禁錮了自己。
HTTP頭中有個expires參數(shù),設(shè)置一個未來的時間,在這時間以前,瀏覽器會先從cache讀取,如果沒有再從服務(wù)器中讀取。對于像圖片,css,script等靜態(tài)內(nèi)容,只需發(fā)一次http request就可,以后就可從cache中讀取,一方面提高了響應(yīng)時間,也減少了http rquest的次數(shù)。
具體的格式如下: Expires = "Expires" ":" HTTP-date。
Example: Expires: Thu, 01 Dec 2010 16:00:00 GMT.
Expires有個缺點(diǎn)就是它只能設(shè)置絕對時間,這樣每當(dāng)?shù)竭_(dá)預(yù)設(shè)時間點(diǎn)后必須重設(shè)expires值。HTTP/1.1提供了一個新的參數(shù)cache-control可以設(shè)置相對時間。
Cache-Control:Max-age
Cache-Control使用max-age直接指定component能被緩存多長時間. 它定義了新的方式用秒為單位. 假如當(dāng)前時間與上次返回時間差小于上次返回的max-age,那么瀏覽器使用緩存的版本。如果需要緩存10年,你可以這樣指定:
Cache-Control: max-age=315360000
PS: 如果同時設(shè)置了cache-control和expires,cache-control會覆蓋expires。
Apache中配置expires
Apache提供了mod_expires.so模塊,可以輕松的設(shè)置expires值,以下是配置的范例:
LoadModule expires_module modules/mod_expires.so
ExpiresActive On
ExpiresDefault "access plus 300 seconds" #默認(rèn)300秒過期
<Directory "/myProject/webResources"> #文件所在目錄
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
ExpiresByType text/html "access plus 1 day" #設(shè)置cache時間為1天
ExpiresByType text/css "access plus 1 day"
ExpiresByType text/javascript "access plus 1 day"
ExpiresByType image/gif "access plus 1 day"
ExpiresByType image/jpg "access plus 1 day"
ExpiresByType image/png "access plus 1 day"
ExpiresByType application/x-shockwave-flash "access plus 1 day"
參考文檔:
1. http://kuppalli.wordpress.com/2009/07/14/apache-configuration-for-etags-gzip-and-expires-header/
2. http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.32
3. http://www.meichua.com/archives/168.html
1. 下載php-mode 1.5,解壓到~/elisp 目錄
2. 在用戶目錄(~/)下找到.emacs 文件,如果沒有,就新建一個。
3. 把下列內(nèi)容加到。emacs文件中:
(autoload 'php-mode "~/elisp/php-mode" "Major mode for editing php code." t)
(add-to-list 'auto-mode-alist '("\\.php$" . php-mode))
(add-to-list 'auto-mode-alist '("\\.inc$" . php-mode)
4. 重啟emacs。
參考地址: http://stackoverflow.com/questions/898063/making-php-mode-compatible-with-emacs-23