使用txt文件在shell脚本中添加用户

时间:2015-10-14 13:16:53

标签: linux shell ubuntu scripting

我想添加一些此文件中的用户:

a b
c d
e f

firstname lastname始终

#!/bin/bash
Lines=$(cat newusers.txt | wc -l)


first=$(cat newusers.txt | awk '{print $1}')
last=$(cat newusers.txt | awk '{print $2}')

#test
echo $Lines;
echo $first;
echo $last;

until [ -z $1]; then

useradd - m -d /home/$1 -c "$1 + $2" $1

fi

在循环之前它工作正常但我无法添加换行符。 回显显示a c e,第二个显示姓氏b d f。 我尝试添加换行符,但它不起作用。

我可以用它做什么? 因为换行问题,我想我无法添加用户。

我还在stackoverflow上搜索了一种方法来检查/dev/null用户是否已经存在,但我必须使用哪个变量?

2 个答案:

答案 0 :(得分:1)

逐行处理文件更容易:

while read first last ; do
    useradd -m -d /home/"$first" -c "$fist + $last" "$first"
done < newusers.txt

答案 1 :(得分:0)

我不明白你的代码意味着什么,但如果你想逐行阅读文件并获取不同字段的值,那么你可以使用以下代码片段:

#!/bin/bash
filename="newusers.txt"
while read -r line
do
    fn=$( echo "$line" |cut -d" " -f1 )
    ln=$( echo "$line" |cut -d" " -f2 )
    echo "$fn $ln"
done < "$filename"

注意:您无法以您希望使用bash脚本的方式添加用户;由于系统会提示您输入必须使用tty提供的密码,因此您可以使用expect对其进行编程;或使用系统调用。