2016-12-14 14 views
0
r=15 
phi=3.14 
d=30 

let area=$r*$r*phi 
echo $area 

let radius=2*$phi*$d 
echo $radius 

コードを実行するとエラーが表示される構文エラー:無効な算術演算子(エラートークンは「14」です)。この問題に関してはGoogleで検索しました。私の質問はそこに他の解決策がありますか?bashスクリプトを使用して円の面積と半径を計算する

第2の条件私はφの22/7に変更されますが、半径の結果は期待通りではありません 面積計算は正しいですが、 188ない180.

thx

+2

可能な複製BASH](http://stackoverflow.com/questions/38428207/trying-to-calculate-radius-and-area-of-circle-in-bash) – Inian

+2

Umm @ 123、円周は '2 * PI * r'または'PI * d'ではなく' PI * d'である(PIの定義のようなものである)。 –

+0

@ DavidC.Rankinええ、私は意味しているwoops、私はそれが半径ではないことを指摘していた! – 123

答えて

1

私はawkを使用します。

circum=$(awk 'BEGIN{print 3.14159*30}') 

echo $circum 
94.2477 

それとも、あなたが一度に円周と面積を必要とします。

read circum area < <(awk 'BEGIN{pi=3.14159;r=15;print 2*pi*r,pi*r*r}') 

echo $circum $area 
94.2477 706.858 

またはbc

bcと一度で
circum=$(bc <<< "3.14159*30") 

echo $circum 
94.24770 

または両方:

{ read circum; read area;} < <(bc <<< "3.14159*30; 3.14159*15*15") 

echo $circum $area 
94.24770 706.85775 

は、彼らが作るものを見るために自分自身に次の2つのコマンドを実行し、すべてのシェルの構文とjiggery-pokeryを理解するには、次の

awk 'BEGIN{pi=3.14159;r=15;print 2*pi*r,pi*r*r}' 

bc <<< "3.14159*30; 3.14159*15*15" 
[円の半径と面積を計算しようとするの
+0

ええ、大丈夫です。そのソリューションはawk、bcなどのインターネットのようなものを使用しています。私はインターネットのように代わりに単純な解決策があるのだろうかと思う。なぜawkかbcが浮動変数を解決するためにそれを自己ではなく使用しなければならないのですか? –

+1

'bash'は浮動小数点演算を行うことができないためです。 –

+0

ああ、私は参照してください....アシスタントに感謝します。 –

関連する問題