Что делают эти функции, так это то, что они скручивают json-файл и анализируют его, вывод которого - число.
function func() {
curl -Ss -H 'Cache-Control: no-cache' url.com/A?limit=2 | jq -r '.
[] | .[] | .blah'
}
function func2() {
curl -Ss -H 'Cache-Control: no-cache' url.com/B2?limit=2 | jq -r '.
[] | .[] | .blah'
}
function func3() {
curl -Ss -H 'Cache-Control: no-cache' url.com/C3?limit=2 | jq -r '.
[] | .[] | .blah'
}
function example() {
"(($(func) * $(func2) * $(func3)))" | bc -l
}
#result is it echoing the numbers, but not actually doing the math.
#echoing .072*.027 in bc, but no math.
Так что я пытаюсь сделать арифметику с плавающей запятой через bash, на это будет ссылаться через другую функцию. Разница лишь в том, что это с функциями. Bash не поддерживает арифметику с плавающей запятой, которая решается с помощью bc.
Пример Функция числовой вывод:
#func output
0.072854 #A
0.072855 #B
0.072828 #C
0.072827 #D
#func2 output
0.027873 #A
0.027884 #B
0.027848 #C
0.027847 #D
#func3 output
0.383170 #A
0.383215 #B
0.381858 #C
0.381857 #D
Как это работает, A * A * A = output1, B * B * B = output2, C * C * C = ouput3
Что я пробовал:
function blah() {
echo $((func*func2*func3)) | bc -l
}
#result is "0"
echo "$(func) * $(func2) * $(func3)" | bc -l
#result is:
.072965
.072966
.072925
.002030350008
.027856
.027827
.010633768950
.382371
.380995
.380977