我在編寫腳本時遇到了一些問題......如果有人能幫助我,那將是非常好的!shell腳本的算術問題
我的腳本有:
VISITS=$((WR + RD));
SERVICE_DEMAND=$((VISITS*SERVICE_DEMAND));
而且我得到這個錯誤:
./calc_serv_demand.sh: line 12: 0.0895406: syntax error: invalid arithmetic operator (error token is ".0895406")
有人能幫助我嗎?
我認爲這是因爲bash只能用於整數...但我需要使用浮點值。
由於事先
問題解決了:
VISITS = $(回聲$ WR + $ RD | BC); echo $ VISITS
SERVICE_DEMAND = $(echo $ VISITS'*'$ SERVICE_TIME | bc); echo $ SERVICE_DEMAND
HUm ... 它適用於總和,它不適用於乘法。 這很奇怪,因爲我檢查了BC手冊,它應該工作! 看一看: 我的腳本: echo $ WR + $ RD | bc&>訪問; VISITS = $(echo $ WR + $ RD | bc); #正常工作 echo $ VISITS SERVICE_DEMAND = $(echo $ VISITS * $ SERVICE_TIME | bc); #返回一個奇怪的錯誤 回聲$ SERVICE_DEMAND 錯誤: 0.0895406 3.42007 12.401 3.5096106 (standard_in)1:語法錯誤 (standard_in)1:非法字符:K (standard_in)1:非法字符:H (standard_in)1:非法字符:T ... – Alucard 2010-06-26 16:22:51
@user:由於'*'對shell有特殊含義,所以你必須寫'\\ *'或''*''。 此外,您應該直接將計算結果分配給一個變量,而不是輸出到文件:'VISITS = $(echo $ WR + $ RD | bc)'。 – 2010-06-26 16:31:14
@ user368453:如果您對'*'執行'echo',它將顯示當前目錄中的所有文件名。只需在公式周圍加上引號,它就會起作用:'SERVICE_DEMAND = $(echo「$ VISITS * $ SERVICE_DEMAND」| bc)' – 2010-06-26 16:32:57