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テストの一部であるためです。ifthen

関連情報