[UNIX] Есть какая-нить приблуда для запросов в оболочке?

hitmisho

Просветите меня темного.
Так уж вышло, что мне тут надо исключительно средствами shell написать программку, которая в числе прочего будет донимать пользователя всякими дурацкими вопросами. Типа "А в своем ли ты уме, о достойнейший пользователь y/n". Ну, соответственно, надо обрабатывать варианты y или n. Вопрос в том как это сделать? Я нашел было команду pick, но она зараза не поддерживается больше. Можно использовать awk.
Да, есче не могу придумать, как проверять что в программу передано пустое количество параметров.

janlynn

read ?

Fragaria

мануал по bash читал?

hitmisho

Так, со вторым разобрался.

Fragaria

man readline поможет?

hitmisho

Йожег, ужель ты не знаешь, что не надо неподготовленного человека пугать мантрой Man?
Читал. Ничо не понял :)

hitmisho

Мне бы примерчег бы

Ivan8209

С помощью sh и expr (возможно, с привлечением чего-нибудь ещё)
можно просто удолбать пользователя вопросами.
Главное --- правильно задавать вопросы, чтобы пользователь не мог воспользоваться yes(1).
---
...Я работаю антинаучным аферистом...

janlynn

echo -n "fuck ? [y/n] "
read ANSWER
case "${ANSWER}" in
[yY]*)
do fuck
;;
[Nn]*)
don't fuck
;;
esac

Ivan8209

Q37: А примерчик можно?
A37: пожалуйста. 2*2=4

while read -p "[y] " ans && [ "$ans" != "y" ]; do echo "Confirm!"; done

---
"Аллах не ведёт людей неверных."

hitmisho

О! Спасибо!

hitmisho

И тебе тож спасибо. Хорошо, когда есть мудрые люди, которых можно спросить :)

sergey_m

мануал по bash читал?
В UNIX нет bash.

spirinale

Можно использовать awk
понимаю, что поздно, но для истории:
awk 'BEGIN {getline Q < "/dev/stdin"; print Q}'

Ivan8209

> /dev/stdin
Может, это лучше получать от tty(1)?
---
...Я работаю антинаучным аферистом...

spirinale

Может, это лучше получать от tty(1)?
ну, от tty(1) ты, в лучшем случае получишь только имя терминала
если ты про получение от /dev/tty и от /dev/fd/0, то объясни - почему первое лучше?

Ivan8209

Исходно была поставлена задача задолбать пользователя вопросами.
Вообще же, я не понимаю, зачем ты пишешь "/dev/stdin",
"getline" и так должен работать через "stdin".
---
...Я работаю антинаучным аферистом...

spirinale

Вообще же, я не понимаю, зачем ты пишешь "/dev/stdin","getline" и так должен работать через "stdin".
вообще, да, это не важно, скорее моя привычка
Оставить комментарий
Имя или ник:
Комментарий: