проблема с циклом for в скрипте BASH - PullRequest
0 голосов
/ 29 декабря 2010

Я пытаюсь выполнить следующий цикл внутри моего скрипта, чтобы отправить почту всем пользователям в определенном файле, который я записал ранее в скрипте.Я проверяю, является ли файл $ 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 возвращает имя пользователя.Я попробовал это в терминале, и это работает.Я попытался поместить приведенный выше код в отдельный файл и заменил «$ eUsers» его путем (/ filename), и он работал без каких-либо проблем.

Однако, когда я использую этот код в своем скрипте, после записи в файл $ eUsers он входит в бесконечный цикл.Я не понимаю, почему это так.В исходном файле кажется, что бесконечный цикл происходит из-за строки cat /letter | mail -s "message" $name.

1 Ответ

2 голосов
/ 29 декабря 2010
#!/bin/bash

while read junk name; do
  echo "message" | mail -s "message" "$name"
done < "$eUsers"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...