Как правильно составить небольшой bash скрипт по созданию пользователей?
такое ощущение что условие неполное, поэтому немного усложню, а при желании вы легко можете упростить скрипт до нужного результата
Предположим что нужно создать N пользователей(от 1 до N) и задать пароль к ним и всё это с соответствующей числовой приставкой . То есть, написать скрипт который на вход получает базовое имя и пароль, а также количество пользователей которых нужно создать.
допустим имя скрипта будет luser.sh
#!/usr/bin/env bash

USER=$1 # базовая часть имени пользователя
PASS=$2 # базовая часть пароля
N=$3    # количество пользователей
for (( i = 1; i <= $N; i++ )); do
	useradd "${USER}_$i" && $(echo "${USER}_$i:${PASS}_$i" |chpasswd)
	echo "User ${USER}_$i added!"
done
пример работы скрипта:
$ sudo ./luser.sh user pass 3
User user_1 added!
User user_2 added!
User user_3 added!
проверим что пользователи с основанием в имени user действительно создались:
$ grep -e "^user" /etc/passwd
user_1:x:1314:1314::/home/user_1:/bin/bash
user_2:x:1315:1315::/home/user_2:/bin/bash
user_3:x:1316:1316::/home/user_3:/bin/bash
Хотелось бы побольше подробностей, потому что не совсем ясно как будет использоваться скрипт и, соответственно, что именно он должен делать.
Предположу, что при вызове скрипта должен создаваться один новый пользоваетль с шаблонным именем.
Т.е. нужно как-то из системы получить список таких пользователей, найти последнего, взять из него цифру и увеличить на один.
Если обязательно нужен именно монотонно возрастающий номер, то примерно вот так:
lastUserSuffix=$(cat /etc/passwd | awk 'BEGIN {FS=":"}; {print $1}' | grep systemd | sort -n | sed 's/systemd-//' | tail -1)
Я тут ищу пользователей с именем systemd-***, думаю вам не составит труда изменить пример для своих целей.