使用BASH在Linux中从CSV添加用户

使用BASH在Linux中从CSV添加用户,bash,parsing,csv,user-accounts,Bash,Parsing,Csv,User Accounts,我的CSV文件包含所需的信息,如名字、姓氏、用户名。我有5个需要从CSV解析的用户。要创建帐户,请分配给组(group1)并分配加密的临时密码。我撞到墙了,任何帮助都会很棒。谢谢 #!/bin/bash OLDIFS=$IFS IFS="," while read firstname lastname userid do useradd -c "$firstname $lastname -d /home/$userid -G group1 -s /bin/bash $useri

我的CSV文件包含所需的信息,如名字、姓氏、用户名。我有5个需要从CSV解析的用户。要创建帐户,请分配给组(group1)并分配加密的临时密码。我撞到墙了,任何帮助都会很棒。谢谢

#!/bin/bash

OLDIFS=$IFS
IFS=","

while read firstname lastname userid 
 do 
    useradd -c "$firstname $lastname -d /home/$userid -G group1 -s /bin/bash $userid"
done
IFS=$OLDIFS
没有从脚本执行中添加任何用户。

这将对您有所帮助

#!/bin/bash

OLDIFS=$IFS
IFS=","

while read firstname lastname userid 
do 
     useradd -c "${firstname} ${lastname}" -d /home/"${userid}" -G group1 -s /bin/bash "${userid}"
done < file.csv
#/bin/bash
OLDIFS=$IFS
IFS=“,”
读取firstname lastname userid时
做
useradd-c“${firstname}${lastname}”-d/home/“${userid}”-G group1-s/bin/bash“${userid}”
完成
你的脚本很好,我做了一些如下的更改

  • 如果引用了变量,这将防止不必要的扩展
  • 由于脚本在子shell中运行,因此无需重置IFS
  • 虽然
    需要文件输入,所以添加了它

  • 你的报价有什么问题?@1up你有一个未关闭的报价。但是,由于您没有正确描述问题,因此无法知道这是否是原因。在BASH;中执行时,在第8行出现错误/Parse.sh:第8行:查找匹配时出现意外EOF`“'./Parse.sh:第12行:语法错误:意外结束file@1up正如我所说:联合国关闭报价。使用带有语法突出显示的编辑器会有所帮助。和/或@1up看起来您将所有数据作为注释发送给
    useradd
    。我想你的意思是在每个参数周围加引号。谢谢,我还将文件保存到了错误的位置,因此没有更改。关于#4:双引号就足够了。这样,单引号将发送到
    useradd
    (这可能不是问题)。