由于 elif 语法错误,bash 中的准嵌套条件失败

由于 elif 语法错误,bash 中的准嵌套条件失败

我有在 bash 中执行一些条件的代码:

firstchar=$(head -c 1 /tmp/project.json)
if [ $? -eq 0 ] then;
  echo "Hooray! nothing found"

elif [ $? -eq 1 ]; then                    
  #check single project
  if [[ $firstchar == "{" ]]; then         
    echo "SINGLE PROJECT"
  elif [[ $firstchar == "[" ]]; then
    echo "MULTIPROJECT"
  else
    echo "didnot get a single or multiproject"
  fi

elif [ $? -eq 2 ] then;
  echo "An error occurred, please contact me"

elif [ $? -eq 3 ] then;
  echo "lah"

else
  echo "Something else occurred on file"
fi

为什么它无法执行提及:7: syntax error near unexpected token elif'

谢谢

答案1

问题在于if [ $? -eq 0 ] then;

这应该是if [ $? -eq 0 ] ; then

其中一些是对的,但有一些是错的。

它不喜欢的原因elif是因为它是测试的一部分if,因为没有启动声明then

相关内容