2016-08-09 12 views
0

午後、秒をミリ秒に変換する必要がありました。スクリプト:コマンド出力の数を掛け合わせて

#!/bin/bash 
a=$(ffprobe -i c848a39afc54e04cc64ddd955686654b9b1c6f31 -show_entries format=duration -v quiet -of csv="p=0"); 
b=1000; 
result=$(($a*$b)); 
echo $result 

./sectomilisec: line 4: 23.760000*1000: syntax error: invalid arithmetic operator (error token is ".760000*1000") 

答えて

3

bash出力はフロート操作をサポートしていません。あなたの解決策は、整数のみで動作します

result=$(echo "$a*$b" | bc) 
2

:あなたはこのためbcを使用することができます。有理数と作業溶液を得るために、私はbcに出力をパイプ勧め:

"$a*$b" | bc 

例:

$ echo "9 * .3" | bc 
# 2.7 

このソリューションでは、非整数に対して有効となります。

Also see here for plenty of other possible options

関連する問題