我试图在我的脚本中执行以下循环,以便将邮件发送给我在脚本前面编写的某个文件中的所有用户。我检查文件$eUsers是否不为空我执行以下操作:
for name in `cat $eUsers | cut -d' ' -f2`
do
echo "message" > /letter
cat /letter | mail -s "message" $name
done
在脚本的开头,我定义了$eUsers=“/filename”。
代码:
cat $eUsers | cut -d' ' -f2
返回用户名。我在候机楼试过了,结果成功了。我试着把上面的代码放在一个单独的文件中,并用它的路径(/filename)替换了“$eUsers”,它运行起来没有任何问题。但是,当我在脚本中使用该代码时,在写入文件$eUsers后,它将进入无限循环。我不明白为什么会这样。在原始文件中,无限循环似乎是由于行
cat /letter | mail -s "message" $name
而发生的。 最佳答案
#!/bin/bash
while read junk name; do
echo "message" | mail -s "message" "$name"
done < "$eUsers"
关于linux - BASH脚本中的for循环问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4550176/