ユーザーを作成してグループに割り当てることができるシェルスクリプトを作成しましたが、エラーが発生し続けます。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と同じなら、存在しないことです。
しかし、ブロックが汚れています...次のリンクを使用してください。
インデント(組版)
また、ブロックを閉じます。