在Bash if条件下使用((...))时出错

时间:2018-03-04 17:32:23

标签: bash shell syntax

#!/bin/bash
A='';B='';C='';D=''
function returnFunctionWebService()
{
        touch test.json
        curl http://localhost:9099/BelattarProject/StudentMail.php -o test.json
        for line in `cat test.txt`;do
                echo $line
                A=$(echo $line | cut -d ',' -f1)
                echo $A
                B=$(echo $line | cut -d ',' -f2)
                echo $B
                C=$(echo $line | cut -d ',' -f3)
                echo $C
                D=$(echo $line | cut -d ',' -f4)
                echo $D
        done
}
returnFunctionWebService
echo $A $B $C $D
if [ -n $A ]; then
        if(( "$A" = "\"test1\"" )); then
                echo -e "c'est juste"
                exit
        else
                echo -e "c'est pas juste"
                exit
        fi
fi

我在这一端有一个错误,即./scriptWeb.sh:line 22 :((:“test1”=“test1”:语法错误:操作数预期(错误标记为“”test1“=”test1“” ) 请帮忙

1 个答案:

答案 0 :(得分:4)

(( ))只能用于整数运算,不能用于字符串比较。对于字符串,请使用[[ ]]构造,这样:

if [[ "$A" = "\"test1\"" ]]; then

您的脚本中存在许多问题。在shellcheck

检查

另见: