我的shell腳本給出了以下錯誤:Runtime error (func=(main), adr=5) : Divide by zero
但我沒有看到我可以被零除的位置?我發現其他人有類似的問題,但有解決方案是非常具體的,不能在我的腳本中複製它們。這裏是我的腳本:運行時錯誤(func =(main),adr = 5):除以零 - 如何解決?
dir=$folder
cd folder
shop1=$1
mean1=4.78
n1=127
shop2=$2
mean2=4.75
n2=324
grep -P -o '(?=<Rating>).*' $hotel1 |
awk '{ sub(/<Overall>/, ""; print }' |
awk '{sum+=$1; sumsq+=$1*$1} END {print sqrt(sumsq/NR - (sum/NR)**2)}'
grep -P -o '(?=<Rating>).*' $hotel2 |
awk '{ sub(/<Overall>/, ""; print }' |
awk '{sum+=$1; sumsq+=$1*$1} END {print sqrt(sumsq/NR - (sum/NR)**2)}'
md=0.03
d1=0.003
d2=0.0038
d1d2=$(echo "d1 + d2" | bc)
sq=0.069
tstat=$(echo "md/sq" | bc)
我的腳本基本上最終會從我的兩個數據文件計算t統計,做到這一點首先計算各檔的標準偏差。謝謝你的時間。
你不必混合的grep和awk這樣。一個寶貴的awk可以統治他們。 – e0k
我通過命令行傳遞這些輸入'./myscript.sh shop_2344.dat shop_4121.dat' –
我不認爲這會是問題,因爲我從這兩部分獲得數字輸出? –