но, если потребуется требуется анализировать вывод сервера, да и еще и реагировать по-разному, это будет реализовать несколько сложнее при помощи простого перенаправления ввода-вывода.
Очень не хватает ожидания альтернативных строк - к примеру 'ssh user@host' может выдать как приглашение для ввода пароля так и запрос на сохранения ключа удаленной машины. Сейчас красиво обработать данную ситуацию нельзя.
Было бы неплохо реализовать нечто вроде:
empty -w "assword:" "topsecret" -w "(yes/no)" yes
Плюс при отсутствии заданного отклика - выходить с кодом выхода, соответствующему позиции ожидаемой строки в списке аргументов, т.е. если увидели "assword:" - rc=1, если "(yes/no)" - rc=2.
Плюс к этому - зачем вообще пользователю заморачиваться с какими-то именами fifo? mktemp(3) вам в руки. Пусть программа при запуске выводит всю необходимую информацию для своей работы. Т.е.:
После этого становятся определенными переменные окружения EMPTY_*, которые и используются при последующих запусках empty [-s|-w].
И назначение ключа '-k' тоже непонятно. Послать сигнал процессу можно более известным способом :) Лучше бы этот ключик завершал работу процесса ${EMPTY_PID} ;)
все хорошо, но empty не сможет установить переменные окружения, которые были бы видны в команднике из которого эта empty запущена. Соответственно последующие empty их не увидят.
>Очень не хватает ожидания альтернативных строк - к примеру 'ssh >user@host' может выдать как приглашение для ввода пароля так и запрос >на сохранения ключа удаленной машины. Сейчас красиво обработать данную >ситуацию нельзя.
это мысль хорошая, обдумаю.
>Плюс к этому - зачем вообще пользователю заморачиваться с какими-то >именами
с 0.6.0b уже можно и не заморачиваться если запускать без ключей -i и -o. Все само создасться и потом само удалиться.
>И назначение ключа '-k' тоже непонятно. Послать сигнал процессу можно >более известным способом :) Лучше бы этот ключик завершал работу >процесса ${EMPTY_PID} ;)
Если вы вдруг начали использовать empty, очень прошу сообщить мне на email zmey20000@yahoo.com или, зная ленность людей, сюда в форум следующую информацию: а. свой uname -a б. если не слишком сложно, что вам понравилось в empty, а что нет.
Хочется знать, на что ориентироваться в следующих версиях.
> все хорошо, но empty не сможет установить переменные окружения, > которые были бы видны в команднике из которого эта empty запущена. > Соответственно последующие empty их не увидят.
ivoronin@babylon:~$ alias empty="echo EMPTY_FIFO=/tmp/fifo" ivoronin@babylon:~$ empty EMPTY_FIFO=/tmp/fifo ivoronin@babylon:~$ echo $EMPTY_FIFO
а я не знаю, что ты хочешь. Что делаешь то и получаешь. Выполняешь в текущем шелле команду echo EMPTY_FIFO через подстановку выполнения своего алиаса empty, потом проверяешь, что ее значение установлено. Это нормально. Но делаешь ты это в текущем шелле, а не наследуешь переменную окружения от сыновьего процесса - это в принципе невозможно. Наследуются только экспортированные переменные от родителя. Азы как-бы.
2 mezantrop
Извините, что мы отвлеклись, а под FreeBSD-4.X ее не тестили?