Я хочу предоставить пользователю приглашение нажать любую клавишу или подождать, пока тайм-аут продолжит работу с оболочкой. Обычно в этом случае решаются следующей идиома:Нажмите любую клавишу с прохождением таймаута в оболочке
read -rs -t3 -n1 "Press any key or wait to continue ..."
Однако эта подсказка кажется немного неуклюжей для меня, и я хотел бы, чтобы остались только «Нажмите любую клавишу для продолжения ...» часть сообщения и указать тайм-аут с точками, напечатанными каждую секунду. Итак, я пишу следующий сценарий:
#!/bin/sh
echo -n "Press any key to continue";
for _ in `seq 3`; do
if ! read -rs -n1 -t1 ; then echo -n "."; else break; fi
done
echo
Он работает так же, как я ожидал, но, очевидно, есть слишком много кода, так что я должен поместить в отдельный файл, вместо того, чтобы использовать в качестве sh -c "..."
в сценарии. Есть ли способ реализовать его более сжатым и компактным способом?
P.S. Возврат ненулевого кода ошибки на Ctrl-C
нажатие является обязательным.