【发布时间】:2014-04-19 06:41:07
【问题描述】:
我对 Linux 和 shell 脚本还很陌生。
我的问题是,脚本应该从名为“list”的文件中读取 2 个令牌 - 使用这些令牌,它会创建一个用户,并根据第二个令牌创建一个子文件夹。它这样做很好 - 但只有一次。只有一次。我的 WHILE 循环有问题吗?
以下是“列表”中的几行示例:
egyes n
kettes y
harmas y
这是脚本:
#!/bin/bash
echo " " >> /root/userpass.txt
most=$(date)
while read user rr; do
p1=${user:0:2}
p2=${user:3:4}
pass=$p1$RANDOM$p2
echo $user - $pass --" LÉTREHOZVA: "$most >> /root/userpass.txt
adduser $user > /dev/null
echo $user:$pass | chpasswd > /dev/null
uhome=/home/$user
if [ $rr=="y" ]; then
mkdir $uhome/rockandroll
chown $user $uhome/rockandroll
fi
mkdir $uhome/res-devres
chown $user $uhome/res-devres
ftpc=/etc/proftpd/proftpd.conf
echo "#"$1 >> $ftpc
echo "<Directory "$uhome"/res-devres/>" >> $ftpc
echo ' <Limit CDUP XCUP STOR LIST CWD XCWD STOU>' >> $ftpc
echo ' AllowAll' >> $ftpc
echo ' </Limit>' >> $ftpc
echo ' <Limit RETR DELE>' >> $ftpc
echo ' DenyAll' >> $ftpc
echo ' </Limit>' >> $ftpc
echo '</Directory>' >> $ftpc
echo " " >> $ftpc
echo " "
done < list
提前致谢。
【问题讨论】:
-
吃东西的标准输入?
-
注意:将密码存储为纯文本是个坏主意...
-
它是临时使用的,直到我将它们发送出去。之后我删除了文件,但这不是重点。你是什么意思“吃标准输入”?
-
任何从标准输入读取的进程都会处理循环的输入。你可以通过简单的消除找到它..
-
是的,可能就是这样 - 在完成工作后如何阻止它访问标准输入?
标签: linux bash shell while-loop