Bash - Как сделать "Press any key to continue" [duplicate]

Раньше я специально не использовал systemd-networkd , но systemd определенно сможет решить эту проблему, настроив служебный файл systemd , который ] systemd-networkd использует.

Поиск служебного файла

Если вы запустите:

systemctl status systemd-networkd

Вы должны получить результат, похожий на этот (используя systemd-modules-load.service в качестве примера, потому что у меня нет systemd-networkd ):

systemd-modules-load.service - Load Kernel Modules
Loaded: loaded (/usr/lib/systemd/system/systemd-modules-load.service; static)
Active: failed (Result: exit-code) since So 2013-08-25 11:48:13 CEST; 32s ago
 Docs: man:systemd-modules-load.service(8).
       man:modules-load.d(5)
Process: 15630 ExecStart=/usr/lib/systemd/systemd-modules-load (code=exited, status=1/FAILURE)

Вторая строка сообщает вам расположение служебного файла (в примере это /usr/lib/systemd/system/systemd-modules-load.service ]). Служебный файл определяет, когда в иерархии systemd должны запускаться действия.

Изменение служебного файла

Если вы откроете этот файл в текстовом редакторе, есть 3 очень важных раздела:

  • [Блок]

  • [Сервис]

  • [Install]

Раздел [Unit] может содержать директивы After и Requires . После того, как принудительно запускает службу после другого модуля systemd , Requires принудительно запускает другой модуль systemd , если он еще не включен (но не заставляет заказывать).

Итак, если вы найдете служебный файл systemd-networkd , определите, какой модуль вы хотите запустить после systemd-networkd , и добавьте к [Unit] ], вы должны установить:

[Unit]
...
Requires=[unit name]
After=[unit name]

С помощью этого метода вы можете принудительно запустить службу systemd-networkd после любого другого устройства.

Другие проблемы

Вы говорите, что монтирование вашей сети не выполняется, если вы монтируете через / etc / fstab , содержат ли их записи параметр _netdev ?

{ {1}}
198
05.07.2016, 09:42
3 ответа
read -rsn1 -p"Press any key to continue";echo

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

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

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

17
27.01.2020, 19:27

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

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

${PAGER:-less} changelog

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

19
27.01.2020, 19:27

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

read -p "Press enter to continue"

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

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

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

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

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

-r заставляет строку интерпретироваться как «сырая» (без учета экранирования обратной косой черты)

445
27.01.2020, 19:27

Теги

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