2009年3月8日 星期日

只讓程序只執行一次的Bash Shell小程式.

有時我們想要一登入就執行一個程序,第2次登入就不希望再次執行,譬如xmms2d(for xmms2)
程式碼:(放在~/.bashrc或放在一個檔,去source它)
--------------------------------------------------------------------------------
value=`ps -A|grep xmms2d`
if [ "$value" = "" ]
then
exec xmms2d&
else
echo "xmms2d已啟動"
fi
--------------------------------------------------------------------------------
` ` :執行Linux指令(通常用在給變數設定)
ps -A :顯示所有程序
| :管線,會將前面執行結果,丟給下一指令
grep 字串:將含有字串的列顯示出來
[ ] :判斷式
$ :解析變數
exec :執行指令
echo :列印一列字串(可含變數)

條件句
if
then
....
else
....
fi

更新更好用此小程式
execsh檔內容:
---------------------------------------------------
value=`ps -A|grep $1`
if [ "$value" = "" ]
then
exec $1&
else
echo "$1已啟動"
fi
---------------------------------------------------

用法:(記得chmod u+x
execsh)
execsh xmms2d
execsh wmcpuload

沒有留言: