В Fedora 32 яркость может быть снижена/повышена только на 1 уровень

При запуске этого кода будет выведено текстовое меню. Что вы делаете с ./menu.sh | bash, так это то, что вы загружаете меню в bashдля выполнения. Другими словами, вы говорите bash: «Пожалуйста, запустите это меню». bashне знает, что означает какой-либо текст в меню, поэтому выдает ошибки.

Однако вы говорите, что не будете использовать этот сценарий так. Вы собираетесь получить (сценарий, а не его вывод )и выполнить его:

curl -o- 'ftp://.../menu.sh' | bash

Это не приведет к выполнению сценария в левой части конвейера, в отличие от вашего ./menu.sh | bash. Так что то, что вы предлагаете, вероятно, сработает.


Также обратите внимание, что гораздо проще сделать многострочный -вывод с документом здесь -:

cat <<END_MENU
===== MAIN - MENU =====
1. Run old sanity script
2. Asterisk
3. Audio
4. CoCo
5. Database
6. Mobile
7. SSH
8. Touch
9. VDS
10. Wireshark
-----------------------
q. Quit
r. Reload
=======================
END_MENU

Также исследуйте утверждение selectв bash. Он отображает меню для вас и упрощает ввод данных пользователем (, если вам не требуется специальное форматирование меню и опций, очевидно ).

Вы также можете использовать несколько шаблонов в операторах case:

q|Q)  echo 'Bye!'
      exit ;;

или

[qQ]) echo 'Bye!'
      exit ;;

(exitиз-за запроса пользователя, вероятно, не должен возвращать не -нулевой код выхода, кстати)

1
26.10.2020, 03:04
1 ответ

Работает после обновления ядра до версии 5.8
Спасибо A.B в комментарии за ответ.

0
18.03.2021, 22:54

Теги

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