1. ホーム
  2. bash

[解決済み] (standard_in) 1: bash スクリプトのシンタックスエラー

2022-02-08 07:13:19

質問

モンテカルロ・シミュレーションに使う準乱数を生成しようとしています。私はbashを使用しています。私はコードのこのビットにあるように私が絞られた構文エラーに当たったようだ。

randno4=($RANDOM % 100001)
upper_limit4=$(echo "scale=10; 1*75.3689"|bc)
lower_limit4=$(echo "scale=10; 1*75.1689"|bc)
range4=$(echo "scale=10; $upper_limit4-$lower_limit4"|bc)
t_twall=`echo "scale=10; ${lower_limit4}+${range4}*${randno3}/100001" |bc`
echo "$t_twall"

なぜ、75.3689と75.1689の間の値ではなく、以下のような出力を期待したのか、誰か知っていますか?

(standard_in) 1: syntax error

解決方法は?

最初の行は次のようになります。

randno4=$((RANDOM % 100001))

(( )) はbashの算術演算で、先頭の $ のように、値が代入されます。 $(( ))

と書いたとき

randno4=( )

ARRAY に間違った構文の算術式を入力しようとした。

参照 http://wiki.bash-hackers.org/syntax/arith_expr

そして最後に、次のような エタン・ライスナー と言っています。 また、t_twallの割り当て行で$randno3が使われていますが、これは未定義です。