新人求shell脚本纠错

各位大佬救救孩子吧!

题目给出了sinx的泰勒公式展开式, 要求脚本接受两个参数 x 与 y(两个都为正数)显示sinx的值

其中y 是精度值,即最后一项|t|<y

最终的结果包括最后一项

 

自己写的代码如下

#! /bin/bash
x=$1
y=$2
i=0
sinx=0
function factoriel(){
    q=1
    read $i
    m=$((2*$i+1))
    j=1
    
    
        
    
    while [ $j -lt $m ]
    do
        j=$(($j+1))
        q=`expr $q \* $j`
    done
    return $q

    
}
n=$(($1**$((2*$i+1))))
z=`($n)/(2*($i+1)) | bc -l`
while [ $z -ge $2];
do 
    sinx=$(($sinx+($n/factoriel())))
    i=$(($i+1))
done
echo $sinx

大概思路有了 但是运行不成功 求个大佬帮帮忙

调试执行,贴一下报错截图