SHELL SCRIPT LINUX установить пароль с помощью ввода пользователя

Я хотел бы установить пароль для новой учетной записи в качестве ввода (строки), введенного пользователем. Кажется, это не работает. Между прочим, это часть более крупного сценария, я включил только соответствующие части в этот выпуск.

Поэтому, если я запускаю код, я получаю следующий код ошибки: /create-user.sh: line 36: user3:hej: command not found. Строка здесь другая, поскольку она является частью более крупного сценария. "hej" выше - это то, что я ввел в качестве входных данных для пароля при запуске кода. Я предполагаю, что оболочка думает, что "hej" должно быть командой, но это должна быть строка для пароля. Чтобы уточнить, hej должен быть паролем.

      #!/bin/bash

# Get the username (login).
read -p "Please enter a username: "  username

# Get the password.
read -p "Please enter an initial password: " password

# Create the account.
useradd "$username"

# Set the password.
chpasswd | "$username":"$password"

1 ответ

Решение

$username:$passwordдолжен быть входом в команду. Вы выводите по конвейеру chpasswdкоманде, сформированной из этого. Поскольку имя пользователя: пароль не является именем команды, вы получите сообщение об ошибке.

Вы хотите:

      chpasswd <<< "$username:$password"
Другие вопросы по тегам