我正在尝试编写一个函数,但出现语法错误。以下是我的功能:
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/