Bash script 中 if 判斷大小於的問題 - Linux

Table of Contents

是這樣的

因為我們知道時間是60進位的
我現在想寫一個腳本可以把我輸入的時間轉換成十進位的!

但是我查了一下bash好像不支援小數點計算?
所以我就自己寫了一個腳本來想辦法弄出小數點

# 2010/07/15 Lai First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
echo -e "Type the min and sec, I will transform to 1/100 !\n"
read -p "minute:" min
read -p "second:" sec
culm=$(($min*10000/60))
culs=$(($sec*10000/3600))
total=$(($culm+$culs))
if ["$total">999 ]; then
echo ".$total"
else
echo ".0$total"
fi

重點就是因為我主要要找出現在總共有幾小時 ex:2.6789個小時

因為用分數這樣計算 會有小數點得問題

我就把他寫成 如果分秒加起來可以湊到0.1個小時的話 那就是顯示.XXX小時
如果湊不到小時0.1小時 就多顯示一個0 變成 0.0XXX小時

但是我最後那個if判斷式好像有點問題 他總是沒辦法判斷出小於零的時候

會顯示

minute:2
second:44
data.sh: line 14: [455:命令找不到
.0455

minute:59
second:59
data.sh: line 14: [9996:命令找不到
.09996


請高手幫我指點一下 我的條件式是不是哪裡有錯誤?!
--

All Comments

Daniel avatarDaniel2010-07-17
判斷數字大小是用 -eq -ne 等,詳見鳥哥
Franklin avatarFranklin2010-07-22
if ["$total",改成if [ "$total",多空一格就可以了
Elma avatarElma2010-07-24
阿~~~感謝大大~我弄出來了!!!
Skylar DavisLinda avatarSkylar DavisLinda2010-07-28
出來了就舒服囉!樓下結帳,謝謝!