循环遍历名称列表和复制文件解释?

时间:2013-05-13 17:50:26

标签: bash shell loops

我编写了一个脚本来将新用户帐户文件复制到新用户位置。它的工作原理是读取用户名列表并将文件复制到该位置。我无法理解为什么我最后需要done < $USER。有人可以解释一下吗?

谢谢

USER=/home/example/new.txt
NEWUSER=$USER

LOC=/var/account/          

cd /home/example

while read NEWUSER
do
cp _newuser.txt $LOC/$NEWUSER
done < $USER

2 个答案:

答案 0 :(得分:2)

迭代文件/home/example/new.txt中的每一行,这是变量USER的值

请看http://en.kioskea.net/faq/1757-how-to-read-a-file-line-by-line

<input redirection运营商(http://www.tldp.org/LDP/abs/html/io-redirection.html

您也可以删除NEWUSER=$USER,因为除NEWUSER循环外我没有看到while的使用情况。由于while,每次迭代都会为NEWUSER分配一个新值。

答案 1 :(得分:0)

因为read从标准输入(stdin)读取输入。要从文件中读取,您需要将其重定向到读取命令。