-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正常工作,但是当我选择$ 4> = 33,它告诉For循环奇怪的现象,BASH
(standard_in) 1: illegal character: \
(standard_in) 1: syntax error
这个错误自败当我发表意见13日线,但很需要有它,我不能得到$ r和13号线 谢谢你们
您是否希望我们自己运行代码,检查所有调试输出,当我们甚至没有您使用的数据时? –
你如何运行脚本?什么投入? * *做*时的输出是什么?一个提示:您将保留所有参数不加引号,这会在重要时导致难以发现的错误。例如,尝试'sigma = $(bc <<<“$ 2 *($ 4 + 1)”)'。 – chepner