【问题标题】:How to set the password for a new created in bash user using awk如何使用 awk 为新创建的 bash 用户设置密码
【发布时间】:2021-06-28 07:45:27
【问题描述】:

在使用 awk 从文本文件中为每个新创建的用户分配密码时需要一些帮助。

例如:

文本文件:

John Doe 12345678

Jane Doe 87654321

Newly created user:

JDoe5678 with password: 12345678

JDoe4321 with password: 87654321

我当前的代码:

#!/bin/bash

PATH_EMPLOYEE_FILE="employeelist"
password=($(awk '{print {print $3}))}' "${PATH_EMPLOYEE_FILE}"))
groupname="group1"

USERS_LIST=($(awk '{print substr($1,1,1) $2 substr($3,length($3)-3,length($3))}' "${PATH_EMPLOYEE_FILE}"))

for USER in "${USERS_LIST[@]}"
do
    echo "User account created: ${USER}"
    useradd -m -G "${groupname}" "${USER}" -p ${password}
done

【问题讨论】:

  • edit您的问题告诉我们您的现有代码有什么问题需要帮助。

标签: bash shell awk


【解决方案1】:

您没有索引$password,因此您始终使用useradd 命令中的第一个密码。

不需要awk 或数组,你可以使用bash 的read 命令及其参数扩展运算符将部分名字和密码提取到用户名中。

while read -r fname lname password; do
    username=${fname:0:1}$lname${password: -4} # don't forget the space before -4
    echo "User account created: $username"
    useradd -m -G "$groupname" "$username" -p "$password"
done < "$PATH_EMPLOYEE_FILE"

【讨论】:

  • 感谢巴尔玛的帮助!
猜你喜欢
  • 2019-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
相关资源
最近更新 更多