예상치 못한 표시 '}' 근처에 구문 오류가 있습니다.

예상치 못한 표시 '}' 근처에 구문 오류가 있습니다.

함수를 작성하려고 하는데 구문 오류가 발생합니다. 다음은 내 기능입니다.

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/

관련 정보