意外标记“}”附近出现语法错误

意外标记“}”附近出现语法错误

我正在尝试编写一个函数,但出现语法错误。以下是我的功能:

checkNoOfParameter () {
    if [[ ${1} -eq ${2} ]]
    then
        job_Status = $true
    else
        job_Status = $false
        echo "Please provide all \"${2}\"  arguments with single space separation"
        readArgumentsFromUser ${2}
}

我这样调用该函数:

    readArgumentsFromUser () {
      read -a input
      checkNoOfParameter ${#input[*]} ${1}
    }

    readArgumentsFromUser 3

答案1

您缺少在关闭函数fi之前结束 if 语句。}

您的作业中也有不应该存在的空格,因此您随后会收到错误“job_Status:找不到命令”;去掉两边的空格=

答案2

你缺少一个“fi”:

checkNoOfParameter () {
    if [[ ${1} -eq ${2} ]]
    then
        job_Status = $true
    else
        job_Status = $false
        echo "Please provide all \"${2}\"  arguments with single space separation"
        readArgumentsFromUser ${2}
    fi
}

另外,您不要在“[[ ... ]]”内使用“-eg”

查看这个工具来解决此类问题:https://www.shellcheck.net/

相关内容