Content #
无须为每个需要创建的新用户账户手动输入useradd命令,可以将需要添加的新用户账户放在一个文本文件中,然后创建一个简单的脚本来进行处理。这个文本文件的格式如下:
loginname, name
第一项是为新用户账户所选用的用户id。第二项是用户的全名。两个值之间以逗号分隔。
将IFS分隔符设置成逗号,并将其作为while语句的条件测试部分。然后使用read 命令读取文件中的各行。实现代码如下所示:
while IFS=',' read -r userid name
read命令会自动移往CSV文本文件的下一行,因此就无须专门再写一个循环了。当read命令返回假值的时候(也就是读取完整个文件),while命令就会退出。
要想把数据从文件中传入while命令,只需在while命令尾部使用一个重定向符即可。
$ cat test26
#!/bin/bash
# process new user accounts
input="users.csv"
while IFS=',' read -r loginname name
do
echo "adding $loginname"
useradd -c "$name" -m $loginname
done < "$input"
$
$input变量中保存的是数据文件名,该数据文件被作为while命令的数据源。 users.csv文件内容如下:
$ cat users.csv
rich,Richard Blum
christine,Christine Bresnahan
barbara,Barbara Blum
tim,Timothy Bresnahan
$
From #
Linux命令行与shell脚本编程大全