语法错误意外的文件结尾

语法错误意外的文件结尾

我编写了一个 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,则不存在。
顺便说一句,你的块很脏......使用以下链接:
缩进(排版)
同时关闭你的块。

相关内容