在Bash中将bc传递给变量对我不起作用

时间:2019-12-24 15:57:25

标签: bash variables syntax bc

我想我快要疯了,我有一个不同的脚本,可以通过将bc的输出传递给变量的通常方式很好地工作,但是我无法正常工作。

相关的代码位是这样的:

PERCENT_MARKUP=".5"

$percentonumber=$(bc -l <<<"$PERCENT_MARKUP/100")
echo "Percent to number = $percentonumber"

$numbertomultiply=$(bc -l <<<"$percentonumber + 1")
echo "Number to multiply = $numbertomultiply"

$MARKUP=$(bc -l <<<"$buyVal * $numbertomultiply")
#$MARKUP=$(bc -l <<<"$buyVal * (1+($PERCENT_MARKUP/100))")
echo "Markup = $MARKUP"

最初,我的倒数第二行目前已被注释掉,但我将其分解以尝试进行故障排除。

我尝试运行该错误时遇到的错误是:

./sell_zombie_brains: line 65: =.00500000000000000000: command not found

其中.0050000000000000被bc的输出替换。我什至在文件中的多个位置尝试了以下内容,包括在#!/ bin / bash之后以及是否有-l

之后
$test=`bc -l <<<"1"`
echo "$test"
echo
$test=$(bc -l <<<"1")
echo "$test"
echo
$test=$(echo "1"|bc -l)
echo "$test"
echo

每个输出./sell_zombie_brains:第68行:= 1:找不到命令

我真是机智。我不知道我在这里想念什么。对于为什么采用这种方式的任何见解都将受到赞赏。

1 个答案:

答案 0 :(得分:1)

您不能使用符号$分配变量:

代替

$percentonumber=$()

percentonumber=$()

如果您是的初学者,那么可以开始学习一些很好的指示:

https://stackoverflow.com/tags/bash/info
FAQ
Guide
Ref
bash hackers
quotes
Check your script

并避免有人建议说要通过tldp.org网站学习,特别是tldp bash指南-ABS)已经过时了,在某些情况下完全是错误的。 BashGuidebash-hackers' wiki更加可靠。