使用BASH在Linux中添加CSV用户

使用BASH在Linux中添加CSV用户

问题描述:

我的CSV文件包含所需的信息,如名字,姓氏,用户标识。我有5个用户,我需要从CSV解析。为了创建分配给组(group1)的帐户并分配加密的临时密码。我打了一堵墙,任何帮助都会很棒。谢谢!使用BASH在Linux中添加CSV用户

#!/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 

没有用户从脚本执行中被添加。

+1

你有什么不对? – 2014-11-04 13:56:29

+0

@ 1up你有一个未结束的报价。但是没有办法知道这是否是原因,因为您没有正确描述问题。 – Biffen 2014-11-04 13:57:46

+0

我在BASH中执行时在第8行发生错误; ./Parse.sh:第8行:寻找匹配的'''意想不到的EOF ./Parse.sh:第12行:语法错误:文件意外结束 – 1up 2014-11-04 13:57:59

这应该对你有所帮助。

#!/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 

你的剧本很好,我已经作出一些改动如下

  1. 所引述的变量,这将防止不必要的扩展。
  2. 重置IFS不是必需的,因为脚本在子外壳中运行。
  3. while需要一个文件输入,所以添加它。
+0

谢谢,我也救了我文件到错误的位置,因此没有变化。 – 1up 2014-11-04 14:34:29

+0

关于#4:双引号就足够了。这样,单引号将被发送到'useradd'(这可能不是问题)。 – Biffen 2014-11-04 14:49:04

+0

@Biffen,检查它,是的,这是正确的。 – 2014-11-04 14:56:27