Вы передаете вход по каналу в некоторое время цикл. В цикле stdin прибывает из предыдущей команды, не из консоли. Ваш select
оператор читает из того же канала что read
оператор читает из.
Кроме того, Вам не нужно cat
.
Необходимо сохранить stdin для использования в избранном операторе. Попробуйте это:
while read el; do select yn in "yes" "no"; do echo $yn; break;
done <&4; done 4<&0 < in
Во-первых, обратите внимание, что мы перенаправляем входное использование' <' вместо использования cat
.
Это сохраняет Ваш источник stdin (fd 0) в fd 4, и затем во входе перенаправлений цикла к select
от fd 4.
Смотрите на /etc/aliases
. Обычно, postmaster
перенаправляется к root
; вопрос становится, кто добирается root
почтовая Лучшая практика должна добавить псевдоним для маршрутизации его на адрес электронной почты (например. root: me@gmail.com
), затем sudo newaliases
устанавливать новый файл псевдонима.