我正在Windows Powershell下使用Shell脚本进行循环操作。具有循环元素的简单float计算如下所示:
for L2 in 0.95 0.5 0.05
do
L1=$((1.0-$L2))
echo $L1
done
我希望:
L1应该是0.05、0.5、0.95
但是出现以下错误消息:
1.0-0.95: syntax error: invalid arithmetic operator (error token is ".0-0.95")
我注意到有人建议添加“ | bc”来进行浮点计算,例如:
L1=$((1.0-$L2) | bc)
但是powershell似乎没有bc选项并返回:
1.0-0.05: command not found
bc: command not found
L1 Value:
答案 0 :(得分:2)
您似乎正在尝试在Windows Shell中使用Unix构造($((...))
)。 PowerShell不了解arithmetic operations:
$L1 = 1.0 - $L2
请注意,目标变量的前缀为$
,与bash也不同。
您的循环语法也是bash特定的。您将必须使用适当的for
或foreach
循环,而不是原来的循环。
总而言之,您必须考虑到Windows PowerShell不是Unix shell,尤其不是bash,并相应地编写代码。