Intereting Posts
Как запустить user system.timer (s) автоматически? mutt: возврат к индексу после удаления или сохранения сообщения в представлении пейджера Пустой рабочий стол после установки xrdp на Centos 6.5 с XFCE в качестве оконного менеджера Как вы выводите список всех справочных страниц в определенном разделе? Как создать скрипт инициализации вместо служебного файла Выровнять текст в центр с заполнением с обеих сторон Проблемы при попытке вывести цвета в bash Как перебирать файлы, имена которых содержат вертикальные строки и пробелы в bash Emacs: автоматически переключается в режим char при переключении в анси-терминальное окно linux-патчи, связанные с точностью измерения времени? Настройка SFTP в Ubuntu AMI Подсчитайте количество процессов и отправьте электронное письмо нескольким людям, если оно превышает определенный предел Добавление другого суффикса в конец строки dovecot mysql-connection ошибка из-за специального charater в config Может кто-нибудь уточнить этот сценарий Bash

Что означает «read -n1 -s» в этом скрипте?

Сегодня я узнал некоторые трюки о опции меню в командной строке. Один из них

cat << EOF Some lines EOF read -n1 -s case $newvar in "1") echo ""; ecsa 

Это действительно волшебство. Я не могу найти какое-либо описание на странице man об этой опции. Как ввод команды чтения был перенесен в вариант случая ? Обычно я использую переменную, чтобы это делать, как я знаю.

Я просто хочу понять процесс этой комбинации.

 while : do clear cat<<EOF ============================== Menu Install DHCP Tool ------------------------------ Please enter your choice: (1) Config Network Interface (2) Check status (3) Config DHCP server (Q)uit ------------------------------ EOF read -n1 -s case "$REPLY" in "1") config_network ;; "2") check_status ;; "3") config_dhcp ;; "q") exit ;; * ) echo "invalid option" ;; esac sleep 0.2 done 

Документация по read отмечает, что:

Если имена не указаны, чтение строки присваивается переменной REPLY .

С этого момента это нормальный case . -n1 считывает один байт и -s отключает терминальное эхо ввода.

Переменная $newvar вы используете в своем кратком описании, не существует.

Он должен быть $REPLY , поскольку вы фактически используете его в полной команде.

Эти проблемы не имеют отношения к параметрам чтения -n1 -s вы спрашиваете.