Erro de sintaxe final inesperado do arquivo [fechado]

4

Eu escrevi um script de shell que me permite criar um usuário e atribuí-lo a um grupo, mas continuo recebendo o erro line 19: syntax error: unexpected end to file

O que estou fazendo de errado? Seria possível alguém me ajudar a estruturar o código para eliminar esse problema.

Aqui está o meu script de 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
    
por Programmer 22.03.2016 / 21:38

2 respostas

1

Isso é algo que você poderia usar. Ele permanecerá no loop até que um novo usuário não existente seja criado.

#!/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
    
por 22.03.2016 / 22:39
0

Você precisa alterar a variável $? . Ele armazena o valor de retorno do último comando:

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

Se for igual a 1, não existe.
BTW, seus blocos estão muito sujos .... Use o seguinte link: Recuo (composição)
Também feche seus blocos.

    
por 22.03.2016 / 22:01