Linux BASH脚本中for循环的问题
我试图在我的脚本中执行以下循环,以便将邮件发送给我在脚本前面编写的某个文件中的所有用户。我检查文件$eUsers是否为空,然后执行以下操作:Linux BASH脚本中for循环的问题,linux,bash,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返回用户名
for name in `cat $eUsers | cut -d' ' -f2`
do
echo "message" > /letter
cat /letter | mail -s "message" $name
done
- 在脚本的开头,我定义了$eUsers=“/filename”
- 代码:
返回用户名。我在候机楼试过了,效果很好。我试着把上面的代码放在一个单独的文件中,并用它的路径(/filename)替换“$eUsers”,它工作起来没有任何问题李>cat$eUsers | cut-d'-f2
cat/letter | mail-s“message”$name
#/bin/bash
#!/bin/bash
while read junk name; do
echo "message" | mail -s "message" "$name"
done < "$eUsers"
同时阅读垃圾名称;做
echo“message”| mail-s“message”“$name”
完成<$eUsers“
尝试使用-x选项运行脚本/bin/bash-x位于顶部,这样您就可以查看详细的输出。在发布的脚本中没有任何内容会导致无限循环。我假设/letter
(和/filename
)表示更长的路径,因为直接将文件放在根目录中是不常见的。我还假设您将消息输出到文件是有原因的,因为echo“message”| mail…
无需文件即可工作。如果您按照建议尝试-x
,它可能会告诉您问题所在,或者如果您可以发布更多详细信息,我们可能会更好地提供帮助。我认为可能是代码的其他部分导致了这个问题。