2016-08-09 3 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는 부동 소수점 연산을 지원하지 않습니다. 당신은이에 대한 bc를 사용할 수 있습니다

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

귀하의 솔루션은 정수와 함께 작동합니다. 유리수와 작업 솔루션을 얻으려면, 나는 bc에 배관을 출력을 제안한다

"$a*$b" | bc 

예 :

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

이 솔루션은 비 정수 유효 것이다.

Also see here for plenty of other possible options