代码之家  ›  专栏  ›  技术社区  ›  Caucasian Malaysian

IF:如何将函数输出的乘法引用到命令测试[重复]

  •  -1
  • Caucasian Malaysian  · 技术社区  · 6 年前

    所以我正在卷曲一个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
    
    2 回复  |  直到 6 年前
        1
  •  1
  •   John Kugelman dbush    6 年前

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

    if (($(func)*$(func2)*$(func3) / $(func2)*$(func3)*$(func) >= 1)); then
        echo "yay"
    fi
    
        2
  •  0
  •   PhilR    6 年前

    尝试以下操作:

    if [[ $(( $(func) * $(func2) * $(func3) )) -gt 1 ]]; then
      echo yay
    else
      echo nay
    fi
    

    这个 $(func) 调用替换命令中的值;这个 $(( ... )) 执行算术计算。