2007年1月27日 星期六

Planet Linux of Taiwan 新增 Category 功能

現在的 http://planet.linux.org.tw 不單單只是收個人的 Blog RSS Feed

任何跟 Linux 相關的 RSS Feed 都可以收

之後再以 Category 來分類

例如 GCIN 的軟體開發專案的 Blog RSS Feed

就放到 http://planet.linux.org.tw/software/ 底下

而個人的 Blog RSS Feed 放在 http://planet.linux.org.tw/people/ 底下

至於 http://planet.linux.org.tw 則是所有 RSS Feed 的總和

歡迎各位朋友或是軟體開發專案或是新聞台提供 RSS Feed

辦法請參考 http://planet.linux.org.tw/join.html

希望在 Planet Linux of Taiwan 可以收集到台灣所有跟 Linux 有關的 RSS Feed... ^o^

2007年1月22日 星期一

Bash: ${foo:=bar} ${foo:-bar} ${foo:+bar} ${foo:?bar}

${foo:=bar}

 1: #!/bin/sh
2:
3: foo='foo'
4: echo ${foo}
5: echo ${foo:=bar}
6: echo ${foo}
7:
8: unset foo
9: echo ${foo}
10: echo ${foo:=bar}
11: echo ${foo}
執行後的輸出結果會是
foo
foo
foo

bar
bar
因為 ${foo:=bar} 的意義是:
當 $foo 值不存在或者是空字串時,將 $foo 的值指定為 'bar',並且傳回 'bar'

所以第5行的結果並不會改變 $foo 的值並且傳回 'foo'
而第9行的作用是把 $foo 的值指定為 'bar' 並且傳回 'bar'



${foo:-bar}

 1: #!/bin/sh
2:
3: foo='foo'
4: echo ${foo}
5: echo ${foo:-bar}
6: echo ${foo}
7:
8: unset foo
9: echo ${foo}
10: echo ${foo:-bar}
11: echo ${foo}
執行後的輸出結果會是
foo
foo
foo

bar
因為 ${foo:-bar} 的意義是:
當 $foo 值不存在或者是空字串時,傳回 'bar',但是不改變 $foo 的值



${foo:+bar}

 1: #!/bin/sh
2:
3: foo='foo'
4: echo ${foo}
5: echo ${foo:+bar}
6: echo ${foo}
7:
8: unset foo
9: echo ${foo}
10: echo ${foo:+bar}
11: echo ${foo}
執行後的輸出結果會是
foo
bar
foo


因為 ${foo:+bar} 的意義是:
當 $foo 值存在並且不為空字串時,傳回 'bar',但是不改變 $foo 的值



${foo:?bar}

1: #!/bin/sh
2:
3: foo='foo'
4: : ${foo:?bar}
5: echo "Here"
6:
7: unset foo
8: : ${foo:?bar}
9: echo "Cannot be here."
執行後的輸出結果會是
Here
sample.sh: line 8: foo: bar
因為 ${foo:?bar} 只是拿來檢查 $foo 的值存在並且不為空字串
檢查不通過時就會印出錯誤訊息並且結束程式
其中的 'bar' 是自訂的錯誤訊息,不填的話輸出結果就變成了
Here
sample.sh: line 8: foo: parameter null or not set

2007年1月18日 星期四

Bash: function return value

作法有點 tricky
#!/bin/sh

main ()
{
return 123
}

main

echo $?

不然就是要用另外一個變數來存傳回值了~ :P

2007年1月17日 星期三

Planet Linux of Taiwan 加入辦法

http://planet.linux.org.tw

主要是想要收集在台灣有使用 Linux 系統而且有在寫相關文章的個人 Blog

現在開始號召各位英雄好漢大哥大姐小弟小妹新手老朋友來加入... ^__^

請提供三項資料
1. 提供你的個人 blog feed
2. 提供你的個人暱稱(本名可)
3. 提供你的個人圖片(長寬皆在120px以內)

範例1:
[http://planet.linux.org.tw/rss20.xml]
name = Planet Linux of Taiwan
face = tux.png

範例2:
[http://planet.linux.org.tw/atom.xml]
name = 台灣 Linux 星球
face = tux.png

範例3:
[http://fourdollars.blogspot.com/feeds/posts/default]
name = FourDollars
face = FourDollars.png

實際範例:
Planet Linux of Taiwan

郵件標題請寫上 "申請加入 Planet Linux of Taiwan"

將以上資料寄到 planet-linux-of-taiwan [NOSPAM] googlegroups.com

2007年1月13日 星期六

CSS Test

Hello Linux
Hello BSD
Hello MacOSX
Hello Windows

#!/usr/bin/perl

print "Hello Perl!\n";

2007年1月12日 星期五

Yahoo!奇摩字典 command line version

http://plog.longwin.com.tw/programming/2007/01/12/y_dictionary_script_2007
看到一段有趣的 perl script



不過似乎一次只能查詢一個單字

於是我自己又加了一個 wrapper 上去... :P
#!/bin/sh
# FourDollars
# 2007/01/12
skip=15

function func_dict ()
{
for i in $*; do
perl -e "`tail -n +$skip $0`" $i
done
}

func_dict $* | less -r -F
exit
#!/usr/bin/perl
# Yen-Ming Lee...
...
...

這樣一來就可以一次查詢多個單字

還可以 page up, page down

不過後來又發現弄個 shell like 的界面比較好用... XD
#!/bin/sh
# FourDollars
# 2007/01/12
skip=23

function func_dict ()
{
for i in $*; do
perl -e "`tail -n +$skip $0`" $i
done
}

while :; do
echo -n "<Yahoo!奇摩字典> "
read word
if [ -z "$word" ]; then
echo
exit
fi
func_dict "$word" | less -r -F

done
exit
#!/usr/bin/perl
# Yen-Ming Lee...
...
...

哈... 後來又把兩種方式合併在一起用... :P
#!/bin/sh
# FourDollars
# 2007/01/12
skip=27

function func_dict ()
{
for i in $*; do
perl -e "`tail -n +$skip $0`" $i
done
}

if [ -z "$*" ]; then
while :; do
echo -n "<Yahoo!奇摩字典> "
read word
if [ -z "$word" ]; then
echo
exit
fi
func_dict "$word" | less -r -F
done
else
func_dict $* | less -r -F
fi
exit
#!/usr/bin/perl
# Yen-Ming Lee...
...
...

2007年1月11日 星期四

Linux wireless LAN support

Google 到一個不錯的網站

http://linux-wless.passys.nl/

裡面有一個 Complete listing 的按鈕點下去

接下來找綠色的無線網路卡來買應該都不錯吧... ^_^

不過像我目前還在用的 ASUS WL-103b 就是黃色的

有部份功能但是就是不完整

有時候是真的可以連上無線網路

但是很多時候是會發生連不上無線網路的問題

要不然就是無線網路的狀況不穩... >"<

之前找的兩張無線網卡 ASUS WL-107gCorega CG-WLCB-54GT 都是綠色的

有了這個網站參考後買有綠色的標誌應該在 Linux 上有不錯的支援吧... :)

2007年1月9日 星期二

Ubuntu 6.10 Edgy - 看影片聽音樂


sudo aptitude install gstreamer0.10-plugins-ugly

裝上這個後就可以用 "影片播放器(Totem)" 看 DVD/VCD 了


sudo aptitude install gstreamer0.10-plugins-ugly-multiverse

裝上這個後就可以用 Rhythmbox(iTunes like) 來聽 mp3 了,當然用 Totem 也可以聽 mp3 啦~

Ubuntu 6.10 Edgy - NetworkManager

把原本的 Ubuntu 6.06 Dapper 換成 Ubuntu 6.10 Edgy
結果在使用 NetworkManager 時一登入 Gnome
就會跳出以下訊息

NetworkManager 面板程式無法找到一些需要的資源。它無法繼續。

煩死了... >"<
後來 Google 了一下找到了這個 Link
http://ubuntuguide.org/wiki/Ubuntu_Edgy
裡面提到

sudo gtk-update-icon-cache -f /usr/share/icons/hicolor

好吧... 真的是這樣就解決了問題... >"<