乘以命令输出的数量

时间:2016-08-09 12:29:05

标签: linux bash

下午好,需要将秒转换为毫秒。脚本:

#!/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")

2 个答案:

答案 0 :(得分:3)

bash不支持浮点运算。您可以使用bc

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

答案 1 :(得分:2)

您的解决方案仅适用于整数。为了得到一个有理数的工作解决方案,我建议将输出汇总到Also see here for plenty of other possible options

"$a*$b" | bc

示例:

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

此解决方案对非整数有效。

here.