作者 主題: (sh)如何累計出1+1的運算式  (閱讀 6872 次)

0 會員 與 1 訪客 正在閱讀本文。

...

  • 酷學園旁聽生
  • 俺是博士!
  • *****
  • 文章數: 5607
    • 檢視個人資料
(sh)如何累計出1+1的運算式
« 於: 2002-01-16 11:05 »
寫bsh時遇到一個問題~
想寫出;      
a=6
11.22 * $a 可求出 11.22 *2 ~ 11.22*6 的各個數值,然後將各個數值轉成變數
應該如何做呢?

echo -n "Enter the number "  6
read N
echo -n " How many times ? "  11.22
read T
export N
export T
(接著該用用麼呢?)

Anonymous

  • 訪客
(sh)如何累計出1+1的運算式
« 回覆 #1 於: 2002-01-18 18:58 »
不是很清楚這個問題所在呢﹖

如果您要進行整數運算﹐先將 var 定義為 integer ﹐例如﹕
# A=3 B="-2"
# RESULT=$A*$B
# echo $RESULT
3*-2
# declare -i A=3 B="-2"
# declare -i RESULT=$A*$B
# echo $RESULT
-6

不過﹐bash 並沒有 floating point (浮點)運算能力﹐所以在處理小數點的時候﹐需要借助其他工具﹐例如 let 或用 perl 來寫﹕

echo -n "Enter the number " 6
read N
declare -i N
echo -n " How many times ? " 11.22
read T
declare -i T
let RESULT="$N * $T"
echo $RESULT

至於您說的什麼 1+1 弁遄M我還不清楚您的需求是什麼﹖


Anonymous

  • 訪客
(sh)如何累計出1+1的運算式
« 回覆 #2 於: 2002-02-19 14:15 »
不好意思~ 這麼久才回覆 ^^
先感謝netman大哥的回答~
有關於浮點運算的問題我還是不太了解耶
您說要借助perl或let來運算浮點
可是我是用unix系統來寫shell的(sh)
對於perl跟let不曉得要如何使用(汗顏 ^^|)
unix上沒有perl跟let這項指令
perl需要install才能使用嗎? let是bsh內建的指令嗎?
哪裡才能download呢?
謝謝您的指點!
又可以用bc來算浮點嗎? 我試過但是還是不太行!


Anonymous

  • 訪客
(sh)如何累計出1+1的運算式
« 回覆 #3 於: 2002-02-19 14:28 »
不知道您是否有按照我上一封回復所說的步驟測試過呢﹖

如果沒有﹐我覺得沒必要再討論了。
如果有﹐請問碰到什麼問題呢﹖

至於 perl ﹐是一種 script language ﹐如果您執行 which perl 沒發現結果的話﹐那八成是沒安裝。至於 let ﹐是 bash 的內建命令。

Anonymous

  • 訪客
(sh)如何累計出1+1的運算式
« 回覆 #4 於: 2002-02-19 14:48 »
有按照您的範例試過了~
現在我知道問題出在哪裡了~
perl是沒有灌,而let: not found 的原因是我用sh執行(抱歉!)
可是公司的unix系統只有sh跟csh兩種shell
那我該怎麼做呢?


Anonymous

  • 訪客
(sh)如何累計出1+1的運算式
« 回覆 #5 於: 2002-02-19 14:58 »
哦﹐這就實在抱歉了﹐因為我從來沒使用過 csh 和 sh 。
我不確定 csh 是否能做浮點運算啦﹐在過往的嬝

Anonymous

  • 訪客
(sh)如何累計出1+1的運算式
« 回覆 #6 於: 2002-02-19 15:03 »
嗯~ 那我再試看看好了~
非常感謝您的解答,讓我又知道了一些
非常感謝!