Error creating user groups from text file I have a problem with a script:
#!/bin/bash
# El argumento tipo corresponde a usuario o grupo.
# El argumento accion corresponde a crear o eliminar cualquiera de los anteriores.
tipo=$1
accion=$2
if [ $tipo = "usuario" ]; then
    while IFS=, read -r nombre usuario grupo
    do
if [ $accion = "crear" ]; then
useradd "$usuario" -c "$nombre" -m -G "$grupo" 
else
sudo userdel "$usuario" -r -f
fi
    done < /tmp/usuarios_fles.txt
    echo "----- Usuarios procesados ----"
    exit 0
else
    while IFS= read -r grupo
    do
if [ $accion = "crear" ]; then
groupadd "$grupo"
else
groupdel "$grupo" -f
fi
    done < /tmp/grupos_fles.txt
    exit 0
    echo "----- Grupos procesados ----"
fi

The file:
/tmp/groups_fles.txt

it only contains these text strings:
adminuser
readwriteuser
readuser

It gives me the following error on Suse 11.3, I test on Fedora 33 and it doesn't show the error:
'.oupadd: Invalid group name `adminuser
'.oupadd: Invalid group name `readwriteuser
'.oupadd: Invalid group name `readuser

I don't know what else to do to make it run
Best regards...
Frank

I solved it like this:
#!/bin/bash

# El argumento tipo corresponde a usuario o grupo.
# El argumento accion corresponde a crear o eliminar cualquiera de los 
  anteriores.

tipo=$1
accion=$2
archivogrupo="/tmp/grupos.txt"
archivousuario="/tmp/usuarios_flex.txt"

if [ $tipo = "usuario" ]; then
    for linea in $(cat $archivousuario | tr " " _ | tr -d '\r')
    do
nombre=`echo $linea|cut -d, -f1`
usuario=`echo $linea|cut -d, -f2`
grupo=`echo $linea|cut -d, -f3`

if [ $accion = "crear" ]; then
useradd $usuario -c $nombre -m -G $grupo
else
userdel $usuario -r -f
fi
    done
echo "----- Usuarios procesados ----"
    exit 0

elif [ $tipo = "grupo" ]; then
    for grupo in $(cat $archivogrupo)
    do
if [ $accion = "crear" ]; then
groupadd $grupo
else
groupdel $grupo
fi
    done
    exit 0
    echo "----- Grupos procesados ----"
fi