大家好,我要做一个bash脚本,从csv生成用户。所以我做了,但当我启动它时没有起作用,他让我从csv文件中只有一个用户,并且csv文件的名称错误:
Id,Prenom,Nom,Mdp,Rôle
1001,Octavia,Blake,U9nh4W,User
1002,Bellamy,Blake,2Nn2Ja,Admin
1003,Abigail ,Griffin,v8G2Zc,User
1004,Finn,Collins,N98rqT,User
1005,Jasper,Jordan,8Ltk4R,User
1006,Raven,Reyes,n45RQz,Admin
1007,Monty ,Green,Y3yzP4,User
1008,Clarke,Griffin,f56SxP,Admin
1009,Marcus,Jane,bNw4T9,User
1010,John ,Murphy,zT5fH2,User
1011,Wells,Jaha,z4b5RJ,User
1012,Maddy ,Griffin,9jqW9F,Admin
这就是我从stackoverflow中提取并编辑的代码:
#!/usr/bin/bash
Ajua_input="/home/sofiane/Téléchargements/Shell_Userlist.csv"
declare -a Id
declare -a Prenom
declare -a Nom
declare -a Mdp
declare -a Role
while IFS=, read -r Id Prenom Nom Mdp Role;
do
Id+=("$Id")
Prenom+=("$Prenom")
Nom+=("$Nom")
Mdp+=("$Mdp")
Role+=("$Role")
done<$Ajua_input
for index in "${!username[@]}";
do
sudo groupadd "${role[$index]}";
sudo useradd -g "${role[$index]}"
-d "/home/${username[index]}"
-s "/bin/bash"
-p "$(echo "${pass[$index]}" | openssh passwd -1 -stdin)" "${username[$index]}"
done
我解决了,谢谢
#!/bin/bash
export IFS=","
cat /home/sofiane/Téléchargements/Shell_Userlist.csv | while read Id Prenom Nom Mdp Role
do
sudo userdel $Prenom-$Nom
sudo groupdel $Prenom-$Nom
sudo useradd $Prenom-$Nom
echo "$Prenom-$Nom:$Mdp" | sudo chpasswd
sudo usermod -u $Id "$Prenom-$Nom"
if [ $Role = "Admin" ]
then
sudo usermod -aG sudo "$Prenom-$Nom"
fi
done