我试图在我的脚本中执行以下循环,以便将邮件发送到我在脚本前面写入的特定文件中的所有用户。我检查文件 $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 | 行而发生的。邮件 -s "消息"$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/