我有以下for循环
for ((i=0;i<=110;i++))
do
j=0.01
k="$(echo "$i"*"$j" | bc)"
l=((k+900))
echo "$l"
done
当我运行此代码时,它会出现以下错误:
line 5: syntax error near unexpected token `('
line 5: `l=((k+900))'
line 7: syntax error near unexpected token `done'
line 7: `done'
请指导我完成错误。提前致谢
答案 0 :(得分:0)
有两个问题:
您需要将算术运算((k+900))
替换为算术扩展,以将输出保存在变量中:
l=$((k+900))
其次,bash
不能进行浮点运算,因此当变量k
包含浮点数时,加法会导致语法错误。您需要将bash
的算术替换为bc
(内部命令替换):
l=$(echo "$k +900" | bc)
答案 1 :(得分:0)
一个注意事项,你可以在bash中更容易地做这些类型的循环。此外,由于bash不支持浮点数,我只会调用python并编写类似的内容。
#!/bin/bash
for i in {1..110}; do
j="0.01"
k="$(python -c "print($i * $j)")"
l="$(python -c "print($k + 900)")"
echo "$l"
done