我已经阅读了以前关于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