この`expr ... bc -l`コマンドが機能しないのはなぜですか?

この`expr ... bc -l`コマンドが機能しないのはなぜですか?

エラーが見つかりました。

bash:予期しないマーカー "-105.5*7+50*3"の近くに構文エラーがあります。

次のスクリプト/表現を実行するとき:

expr (-105.5*7+50*3)/20 + (19^2)/7 | bc -l

これらの数学/浮動小数点演算を評価する他の方法はありますか?

編集#1

メモ: echoin placeはexpr問題を解決しますが、以前に使用したことがexprあり、bc通常は浮動小数点をうまく処理していますが、この場合問題が解決しない理由が今疑問に思います。

ベストアンサー1

expr次のように、以前にパラメータの周りに引用符を入れることはできますか?

$ expr '(-105.5*7+50*3)/20 + (19^2)/7' | bc -l
22.14642857142857142857

この場合、expr算術演算は実行されず、元の式のみが印刷されます。

$ expr '(-105.5*7+50*3)/20 + (19^2)/7'        
(-105.5*7+50*3)/20 + (19^2)/7

すべての計算はで行われ、コマンド全体bc -lは正解を提供します(expr実際の動作方法にもかかわらずecho)。

おすすめ記事