vi lista de usuarios.txt
Tom
Josh
Noah
vi addgroup.sh
#!/bin/bash
for user in 'cat userlist.txt'
do
sudo usermod -a -G vncuser $user
done
sh agregargrupo.sh
Usage usermod [options] LOGIN
¿Cómo soluciono este error de "Uso de usermod [opciones] INICIAR SESIÓN"? Lo siento, soy principiante en esto, ¡gracias de antemano!
Respuesta1
Estás repitiendo "cat userlist.txt", no el contenido del archivo. Eso significa que $usuario será igual a "cat" y luego a "userlist.txt". Podrías agregar una línea de registro como:
echo "Adding user '$user' to group vncuser"
Cómo solucionarlo: utilice command
el formato de comilla invertida o paréntesis de dólares como $(comando). Prefiero el segundo porque es más fácil de leer.
for user in $(egrep -v "^#|^$" userlist.txt); do
echo "Adding user '$user' to group 'vncuser'"
sudo usermod -a -G vncuser $user
done
¿Qué hice aquí? Utilicé egrep para filtrar líneas que comienzan con # y líneas vacías.
Respuesta2
Comillas dobles en cada variable de línea:
while IFS= read -r line
do
sudo usermod -a -G vncuser "$line"
done <userlist.txt
Luego haz un chmod +x filename.sh
antes de ejecutarlo.
Respuesta3
Primer paso: debe usar comillas invertidas (no comillas simples) o solo el $()
operador
for user in $(cat userlist.txt) do
sudo usermod -a -G vncuser $user
done
Además de eso, es posible que obtenga líneas vacías, por lo que
for user in $(cat userlist.txt) do
test -n "$user" && sudo usermod -a -G vncuser $user
done
Y finalmente acabar con `cat
while read user ; do
test -n "$user" && sudo usermod -a -G vncuser $user
done <userlist.txt