我编写了一个 shell 脚本,它允许我创建一个用户并将其分配给一个组,但我不断收到错误line 19: syntax error: unexpected end to file
我究竟做错了什么?有人可以帮助我重新构建代码来消除这个问题吗?
这是我的 shell 脚本。
#!/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,则不存在。
顺便说一句,你的块很脏......使用以下链接:
缩进(排版)
同时关闭你的块。