[英]float numbers division bash
我已经阅读了以前关于bash中浮点数除法的所有文章,但我无法解决我的问题...
我有这个bash脚本:
lengthseq=$(sed -e 's/^\(>\).*//' sequence.fasta | sed '1d' | tr -d "\n" | awk '{ print length }')
lengthcodons=$("$lengthseq/3" | bc -l)
echo $lengthseq
echo $lengthcodons
Lengthseq没关系。 echo $ lengthseq打印2275859。
如果我在konsole中运行它:
echo "2275859/3" | bc -l
758619.66666666666666666666
也可以
因此,我不理解为什么在脚本中尝试$ lengthcodons会产生错误。
使用bc -l
正确语法是:
lengthcodons=$(bc -l <<< "$lengthseq/3")
echo "$lengthcodons"
758619.66666666666666666666
或scale=2
lengthcodons=$(bc -l <<< "scale=2; $lengthseq/3")
echo "$lengthcodons"
758619.66
您在下一行中缺少echo
lengthcodons=$(echo "$lengthseq/3" | bc -l)
这里:
lengthcodons=$("$lengthseq/3" | bc -l)
您正在执行"2275859/3" | bc -l
"2275859/3" | bc -l
并将结果放入lengthcodons
,您忘记了echo
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.