BASH脚本中for循环的问题

时间:2010-12-28 22:53:51

标签: linux bash

我正在尝试在我的脚本中执行以下循环,以便将邮件发送到我之前在脚本中编写的某个文件中的所有用户。我检查文件$ ​​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,似乎发生了无限循环。

1 个答案:

答案 0 :(得分:2)

#!/bin/bash

while read junk name; do
  echo "message" | mail -s "message" "$name"
done < "$eUsers"