我想我快要疯了,我有一个不同的脚本,可以通过将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:找不到命令
我真是机智。我不知道我在这里想念什么。对于为什么采用这种方式的任何见解都将受到赞赏。
答案 0 :(得分:1)
您不能使用符号$
分配变量:
代替
$percentonumber=$()
是
percentonumber=$()
如果您是bash的初学者,那么可以开始学习一些很好的指示:
https://stackoverflow.com/tags/bash/info
FAQ
Guide
Ref
bash hackers
quotes
Check your script
并避免有人建议说要通过tldp.org网站学习,特别是tldp bash指南-ABS)已经过时了,在某些情况下完全是错误的。 BashGuide和bash-hackers' wiki更加可靠。