-1
#! /bin/bash
#N Step Staggered Summation
#Four parameters, NSSS(b,n,mu,p)=NSSS($1,$2,$3,$4)
echo "NSSS(b,n,mu,p)=NSSS($1,$2,$3,$4)"
sigma=$(bc <<< ''$2'*('$4'+1)')
echo "sigma=$sigma"
let n=0
for ((r=0; r <= $4; r++))
do
s=$(bc <<< 'scale='$sigma';'$1'*'$3'^'$r'/(10^('$2'*('$r'+1)))')
echo "$s"
n=$(bc <<< 'scale='$sigma';('$s'+'$n')/1')
done
echo "M($1,$2,$3)="
bc <<< 'scale='$sigma';'$1'/(10^'$2'-'$3')'
echo "NSSS($1,$2,$3,$4)"
echo "$n" > nsss
cat nsss
これは私のコードで、それは$ 4 < = 32正常に動作しますが、私は> = 33 $ 4選択したときに、私がコメントするときには、このエラー。消える、BASH
(standard_in) 1: illegal character: \
(standard_in) 1: syntax error
を伝えます13行目が、それを持っていることがかなり必要である、と私は みんなありがとう
使用しているデータがなくても、すべてのデバッグ出力を調べて、コードを自分で実行することを期待していますか? –
どのようにスクリプトを実行していますか?どのような入力? *出力したときの出力は何ですか? 1つのヒント:すべてのパラメータを引用符で囲まずにしておくと、重要なときに見つけにくいエラーが発生する可能性があります。たとえば、 'sigma = $(bc <<<" $ 2 *($ 4 + 1) ")'を試してください。 – chepner