[問題] Bash script 中 if 判斷大小於的問題

看板Linux作者 (賴打)時間15年前 (2010/07/15 11:37), 編輯推噓3(301)
留言4則, 3人參與, 最新討論串1/1
是這樣的 因為我們知道時間是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 請高手幫我指點一下 我的條件式是不是哪裡有錯誤?! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.122.193.112 ※ 編輯: danny6430 來自: 140.122.193.112 (07/15 11:43)

07/15 12:33, , 1F
判斷數字大小是用 -eq -ne 等,詳見鳥哥
07/15 12:33, 1F

07/15 12:40, , 2F
if ["$total",改成if [ "$total",多空一格就可以了
07/15 12:40, 2F

07/15 13:06, , 3F
阿~~~感謝大大~我弄出來了!!!
07/15 13:06, 3F

07/15 13:25, , 4F
出來了就舒服囉!樓下結帳,謝謝!
07/15 13:25, 4F
文章代碼(AID): #1CFe9ylv (Linux)