首页 > 解决方案 > IF:如何将函数输出的乘法引用到命令 TEST

问题描述

所以我正在卷曲一个json文件并解析它。结果是一个数字。这些函数中的每一个都输出不同的数字。我想要一个数学方程的输出,它会出现在 IF 语句中。

function func() {
    curl -Ss -H 'Cache-Control: no-cache' url.com | jq -r '.[] | .[] | 
.interger'
}
function func2() {
    curl -Ss -H 'Cache-Control: no-cache' url.com | jq -r '.[] | .[] | 
.interger'
}
function func3() {
    curl -Ss -H 'Cache-Control: no-cache' url.com | jq -r '.[] | .[] | 
.interger'
}


if func*func2*func3 / func2*func3*func -ge 1
then
echo "yay"
fi
if func*func2*func3 / func2*func3*func -lt 1
then
echo "nay"
fi

目前它没有对 if 语句进行任何类型的乘法或除法,因此使语句过时。

到目前为止,我已经尝试过:

if [func*func2*func3 / func2*func3*func -ge 1]
then
echo "yay"
fi
if [func*func2*func3 / func2*func3*func -lt 1]
then
echo "nay"
fi

标签: bashfunctionif-statementnumberssh

解决方案


算术是用((...)). 捕获输出是用$(...).

if (($(func)*$(func2)*$(func3) / $(func2)*$(func3)*$(func) >= 1)); then
    echo "yay"
fi

推荐阅读