我在寫什麼應該是一個簡單的bash腳本來計算最小值p需要在公式C = 1-(p^n)中。 C和p由用戶輸入並且是浮點數。如何在bash while循環條件語句中使用bc?
例如,如果C = 0.36和p = 0.8,然後我的程序應返回2 n的值,由於1-(0.8^2)= 0.36
我的代碼如下。請注意:我已經在我的while循環條件語句中的每一次出現錯誤時將|bc
放在許多不同的地方。正如你所看到的,我試過的最後一個地方是兩個右括號之間。
我收到以下錯誤:
operand expected (error token is ".36")
#!/bash/bin
echo "Enter I/O fraction time:"
read ioINPUT
echo "Enter expect CPU utilization:"
read uINPUT
n=1
function cpuUTIL {
x='scale=3; 1-$ioINPUT**$n'|bc
}
while [[ cpuUTIL -lt $uINPUT ]|bc]; do
n+=1
x='scale=3; 1-$ioINPUT**$n'|bc
done
echo $c
如何正確使用BC在bash腳本while循環語句?
的幾個問題的代碼:1.'/慶典/ bin'首音誤置。 2. var名稱應該是'c','p'和'n',而不是* $ ioINPUT *,* $ uINPUT *和* $ x *。 3.最後一行是'echo $ c',但不會分配* $ c *。 4.用一個十進制值測試一個只有整數的「-lt」比較。 5.函數'cpuUTIL'不能用'-lt'來測試。 6.變量賦值不產生輸出,因此將它們傳送到'bc'不起作用。 7.'] | bc]'錯字。 8.「while」測試不會受到該循環中的內容的影響,並且如果啓動必須永久運行。 – agc
感謝您的提示。 1和3發生是因爲我匆忙而且很累。我道歉。唯一我不明白的問題是2:爲什麼我的變量應該被命名爲c,p和n? – MoreFoam
由於這是一個簡單的程序,所建模的公式使用了這些變量,因此程序更加簡單。如果代碼必須有很長的名字,那麼最好使用這些方程式字母所建模的任何屬性的名稱。 – agc