Баш - Как я могу сделать «Нажать любую клавишу для продолжения» [дублировать]

    

У этого вопроса уже есть ответ:

    

Я создаю скрипт для установки моей темы, после того, как он завершит установку, появится журнал изменений, и там будет «Нажмите любую клавишу, чтобы продолжить», чтобы после того, как пользователи прочитали журнал изменений, нажмите любую клавишу, чтобы продолжить

99 голосов | спросил superquanganh 5 J000000Tuesday16 2016, 09:42:42

3 ответа


167

Вы можете использовать команду read:

read -p "Press enter to continue"

Как уже упоминалось в комментариях выше, эта команда действительно требует, чтобы пользователь нажал enter ; решение, которое работает с любым ключом, будет:

read -n 1 -s -r -p "Press any key to continue"

Объяснение Rayne и wchargin

-n определяет требуемое количество символов для остановки чтения

-s скрывает ввод пользователя

-r вызывает интерпретацию строки «raw» (без учета обратных слэшей)

ответил MKT 5 J000000Tuesday16 2016, 09:48:13
17

Как пишет @cas в комментарии, вы действительно должны использовать less для этого. Если в списке изменений больше одной страницы, вы действительно хотите пейджер в любом случае.

Обычно вы хотите обратиться к переменной окружения PAGER вместо того, чтобы просто называть less:

${PAGER:-less} changelog

будет использовать $PAGER, если он установлен и less в противном случае.

ответил Stig Hemmer 5 J000000Tuesday16 2016, 12:25:39
3
read -rsn1 -p"Press any key to continue";echo

Или, если вам действительно нужна переменная REPLY:

read -rsn1 -p"Press any key to continue" variable;echo

Замените переменную variable на имя переменной, которое вам не нужно.

ответил Έρικ Κωνσταντόπουλος 6 J000000Wednesday16 2016, 17:35:34

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132