在Bash中将bc传递到变量中对我来说不正确

问题描述 投票:0回答:1

[我想我快要疯了,我有一个不同的脚本,可以通过将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:找不到命令

我真的很机智。我不知道我在这里想念什么。感谢您对为什么采用这种方式的任何见解。

bash variables syntax bc
1个回答
1
投票

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

而不是

$percentonumber=$()

percentonumber=$()

如果您是初学者,那么一些不错的入门指南:

https://stackoverflow.com/tags/bash/infoFAQGuideRefbash hackersquotesCheck your script

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

© www.soinside.com 2019 - 2024. All rights reserved.