簡體   English   中英

浮點數除法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM