我编写了一个脚本来将新用户帐户文件复制到新用户位置。它的工作原理是读取用户名列表并将文件复制到该位置。我无法理解为什么我最后需要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
答案 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)读取输入。要从文件中读取,您需要将其重定向到读取命令。