Bash错误:[:缺少“%]”

Bash错误:[:缺少“%]”,bash,shell,if-statement,comparison,conditional-statements,Bash,Shell,If Statement,Comparison,Conditional Statements,我想实现一个非常简单的函数,但是在使用的条件下发生了错误 function test() { checkstatus echo ${currentStatus} if [ "$currentStatus" == "true" ]  then echo "Currently Ok" else exit_error 101 fi } test 但是,脚本返回: 真的 ./script.sh:第4行:[

我想实现一个非常简单的函数,但是在使用的条件下发生了错误

function test()
{   
    checkstatus
    echo ${currentStatus}
    if [ "$currentStatus" == "true" ] 
    then    
        echo "Currently Ok"
    else
        exit_error 101  
    fi
}
test
但是,脚本返回:

真的


./script.sh:第4行:[:缺少“]”

这是因为在/bin/sh比较块中,如果块:

#!/bin/sh
test(){   
    checkstatus
    echo ${currentStatus}
    if [ "$currentStatus" = "true" ]; then    
        echo "Currently Ok"
    else
        exit_error 101  
    fi
}
test


实际上看起来不太正确,但除非您有特定的理由不使用,否则您应该始终使用[…]而不是[…]。如果currentStatus未初始化,也会出现错误。如何分配currentStatus?你的第一条蛇帮线包含/bin/bash?是的,第一行包含/bin/bash。currenStatus由函数checkStatus赋值,该函数包含以下声明currentStatus=${array[7]}JID,您的解决方案返回多个错误:条件表达式中的语法错误,接近]]'的语法错误,如果[${currenStatus}==true]],那么至少有人今晚有他们的思维上限。这不是我。这绝对没有什么区别,你可以使用任何一个,因为OP已经声明他们正在使用/对不起,我没有注意到。。。我的错
#!/bin/bash
function test(){   
    checkstatus
    echo ${currentStatus}
    if [[ "$currentStatus" == "true" ]]; then    
        echo "Currently Ok"
    else
        exit_error 101  
    fi
}
test