LINUX SHELL SCRIPT Генерация случайного пароля и использование входных аргументов в качестве имени пользователя
Я пытаюсь изучить сценарии оболочки, и в этом сценарии я хочу, чтобы пользователь напрямую вводил желаемое имя пользователя в командной строке (без запроса на это), а затем я хочу предоставить этому пользователю случайный пароль. Думаю, я понял, как получить случайную строку, но как мне установить эту строку в качестве пароля?
Кроме того, часть имени пользователя, похоже, не работает. Когда я запускаю сценарий, а затем ввожу аргумент, он говорит мне: «Пожалуйста, введите аргумент». Это означает, что он считает, что аргументов не было, даже если я приводил аргументы. К вашему сведению, я запускаю код без каких-либо аргументов, и когда он запускается, он дает мне пустую строку, где я могу что-то писать. Вот где я ввожу имя пользователя, возможно, это неверно. Как вы, наверное, догадались, у меня не так много клеток мозга.
read -p "$1" username
# Shows a message if no args were given
if [[ $# -eq 0 ]] ; then
echo 'Please enter an argument'
exit 1
fi
# Get a random password
date +%s%N | sha256sum | head -c 10 # Use as password
# Add user
useradd "$username"
# Set the password
chpasswd <<< "$username:$password"