Есть скрипт, параметр1 - путь к файлу, параметр2 - список групп для добавление пользователей в них. Запускается скрипт, вводим с клавы пользователя, которого хотим создать, жмем энтер, вводим дальше. хотим прекратить, вводим (то есть ничего не вводим) пустую строку и жмем энтер (все юзеры в файле, с файла уже построчно считываем и создаем учетки и присваиваем им группы, перечисленные в параметре2 через запятую):
#!/bin/bash
echo -n "Enter name: "
read NAME
echo "${NAME}" > $1
f=true
while [ $f == true ]; do
echo -n "Enter name: "
read S
echo "${S}" >> $1
if [ -z ${S} ]; then
f=false
sed -i '$d' $1
else continue
fi
done
#"IFS="\n"
password="passwd123"
for STR in `cat $1`; do
useradd -m -d /repository/Lab1/Dev $STR
echo -e "${password}\n${password}" | passwd $STR
usermod -a -G lab1,$2 $STR
done
Как сделать проверку, чтобы "если группы не существует", то вывести сообщение, что "вы опечатались" и не зафейливать юзермод, а всё ровно добавлять в те группы которые сущесвуют.
и есть похожий скрипт, только на добавление в группы уже существующих юзеров.
#!/bin/bash
echo -n "Enter name: "
read NAME
echo "${NAME}" > $1
f=true
while [ $f == true ]; do
echo -n "Enter name: "
read S
echo "${S}" >> $1
if [ -z ${S} ]; then
f=false
sed -i '$d' $1
else continue
fi
done
#IFS="\n"
for STR in `cat $1`; do
usermod -a -G lab1,$2 $STR
done
как сделать обе проверки "существует ли юзер" и "существует ли группа. чтобы если опечатлся в чем-то одном, скрипт всё ровно выполнился для существующих юзеров/групп?