2011-09-13

[轉載] Linux shell script 的彩色控制

轉載自:Linux shell script 的彩色控制

Linux 下的終端機畫面不是只能換換背景而已,顯示出來的顏色也是能控制的。使用的顏色就像以前的DOS 時代,或者現在的BBS 顏色控制方式一樣。

以shell 的顯示為例,顯示的格式如下:

\33[ 文字樣式 ; 文字顏色 ; 背景顏色 m
文字內容………………
\33[0m

文字樣式有列下幾種色碼可以使用:
  • 0 一般亮度
  • 1 高度度
  • 4 加底線
  • 5 灰底

文字顏色則都是3開頭,有下列色碼:
  • 30 黑色
  • 31 紅色
  • 32 綠色
  • 33 黃色
  • 34 藍色
  • 35 紫色
  • 36 青綠
  • 37 白色

再來是背景顏色色碼,都是4開頭:
  • 40 黑色
  • 41 紅色
  • 42 綠色
  • 43 黃色
  • 44 藍色
  • 45 紫色
  • 46 青綠
  • 47 白色

如果我要在畫面上顯示高亮度的綠色(32)及黑色背景,可以如下:
sprintf "\33[1;32;40m 我的文字 \33[0m"

也可以分開來寫比較清楚
sprintf "\33[1;32;40m "
sprintf "我的文字"
sprintf "\33[0m"

記得shell 輸出碼要用 printf 而不是用一般的 echo。echo 的話要寫成 echo -e 。
但並不是所有的終端機畫面都是用黑色背景的。如果我們不要指定它的黑色背景,讓它使用系統原始背景色,可以省略背景描述變成如下:
sprintf "\033[1;32m"
sprintf "我的文字"
sprintf "\033[0m"

是不是就比較完美了呢。

其實這些控制碼和BBS 的還真像。
2011-09-09

RamDisk 設定 & 瀏覽器 cache 設定

上次已經有建立過 RamDisk 一次了,最近重灌又在玩了一次,說真的,不紀錄下來,久久又會忘記了。

首先先設定 C:\boot.ini,在 [operating systems] 的最後加入 /PAE,這是為了讓 XP能夠定址到3G以上的空間,然後重新開機才會生效。
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /noexecute=alwaysoff /PAE







然後將多出來的記憶體建立成 RamDisk,先是要讓 SuperSpeed RamDisk 抓到多出來的記憶空間。




這裡選擇要自動搜尋,它會將沒用到的空間標記起來。


接著選擇建立一個新的 RamDisk,就會出現以下的畫面,先是設定空間的大小。








設定 Chrome 的快取目錄指向到 RamDisk 中,只要在開啟的連結中加入 --disk-cache-dir="P:\temp\chrome" 參數就可以改變快取目錄。




設定 Firefox 的快取目錄指向到 RamDisk 中,在 Firefox 的網址列中鍵入 about:config,進入進階設定的頁面中,然後新增一個名稱為 browser.cache.disk.parent_directory 的字串,其值為 P:\temp\firefox





[jQuery] 等待多個 Ajax 請求完成

最近在找等待多個 Ajax 完成的方法,找到 jQuery.when函数分析這篇文章中有處理多個 Ajax 的方法,但對於數量不固定的狀況,jQuery.when 輸入參數的方式實在有點討厭,必須要指定 Ajax 的數量,還好想起有 apply 這個方法可以用,可以將 array 轉換成呼叫 function 的參數,這樣不管有多少數量,都可以很輕鬆的帶入到 jQuery.when 中。

/*將多個 Ajax 加到 array 中*/
var ajaxRequest=[];
for (var i=0; i<10; i++){
    ajaxRequest.push(
        $.ajax({
            data: {'a':i},
            success: function(data) {
                console.log(data);
            }
        })
    );
};

/*利用 apply 將 ajaxRequest 帶入 jQuery.when*/
var der=$.when.apply( $, ajaxRequest )

der.always(function() {
    console.log(arguments);
    alert('全部結束');
});        
der.done(function() {
    console.log(arguments);
    alert('全部成功');
});        
2011-09-05

[jQuery] textarea 自動高度很簡單

上網找了一些文章來看後,自己又再改了一改,發現很簡單就可以達到自動高度的功能,真是給他快樂的說。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>文字區塊自動高度</title>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" type="text/javascript"></script>
    <script type="text/javascript"> 
    jQuery(function($) {
        $("textarea.AutoHeight").css("overflow","hidden").bind("keydown keyup", function(){
            $(this).height('0px').height($(this).prop("scrollHeight")+"px");
        }).keydown();
    });
    </script> 
</head>
<body>
    <textarea class="AutoHeight"></textarea>
    <textarea class="AutoHeight"></textarea>
    <textarea class="AutoHeight"></textarea>
</body>
</html>