構文エラー 予期しないファイルの終わり [閉じる]

構文エラー 予期しないファイルの終わり [閉じる]

ユーザーを作成してグループに割り当てることができるシェルスクリプトを作成しましたが、エラーが発生し続けます。line 19: syntax error: unexpected end to file

私は何が間違っていましたか?この問題を解決するためにコードを再構築するのに役立つ人はいますか?

これは私のシェルスクリプトです。

#!/bin/bash
username="U"
group="G"
while [ $username"U" ] >/dev/null 2>&1;
read -p "Please input the username you would like to generate"
if
  id -U $username >/dev/null 2&1;
echo 'User already exists"
while [ $group >dev/null 2>&1; 

echo "group exists"

else
    groupadd $group
fi

答え1

これはあなたが使用できるものです。存在しない新しいユーザーが作成されるまでループに残ります。

#!/usr/bin/env bash

anotherUser() {
   read -p "Add another user? [y/n]" yn
   if [[ $yn = *[yY]* ]]; then
      checkUser
   fi
   exit
}
checkUser() {
while :
   do
      read -p "Enter user: " userName
      if id $userName >/dev/null
         then echo "User exists"
         anotherUser
      else
         adduser "$userName"
         printf "User %s has been added\n" "$userName"
         exit
      fi
   done
}
checkUser

答え2

$?変数を介して変更する必要があります。最後のコマンドの戻り値を保存します。

id -u $username > /dev/null 2>&1 ;
if [[ "$?" -eq 0 ]]; then
        echo "username already exists."

1と同じなら、存在しないことです。
しかし、ブロックが汚れています...次のリンクを使用してください。
インデント(組版)
また、ブロックを閉じます。

関連情報