HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <ul><li><a>Linux Shell</a><ul><li><a>Синтаксис команд</a></li>
1 <ul><li><a>Linux Shell</a><ul><li><a>Синтаксис команд</a></li>
2 </ul></li>
2 </ul></li>
3 <li><a>Команда read - характеристика</a><ul><li><a>Параметры</a></li>
3 <li><a>Команда read - характеристика</a><ul><li><a>Параметры</a></li>
4 </ul></li>
4 </ul></li>
5 <li><a>Команда без параметров</a></li>
5 <li><a>Команда без параметров</a></li>
6 <li><a>Подсказка</a></li>
6 <li><a>Подсказка</a></li>
7 <li><a>Использование тихой опции</a></li>
7 <li><a>Использование тихой опции</a></li>
8 <li><a>Ограничения символов</a></li>
8 <li><a>Ограничения символов</a></li>
9 <li><a>Хранение данных в массиве</a></li>
9 <li><a>Хранение данных в массиве</a></li>
10 <li><a>Функция тайм-аута</a></li>
10 <li><a>Функция тайм-аута</a></li>
11 </ul><p>Linux - одна из самых популярных операционных систем. Она может быть непривычна тем, кто долгое время пользовался Windows. Связано это не только с особенностями интерфейса, но и с системой управления. В Linux она организована преимущественно через специальную оболочку.</p>
11 </ul><p>Linux - одна из самых популярных операционных систем. Она может быть непривычна тем, кто долгое время пользовался Windows. Связано это не только с особенностями интерфейса, но и с системой управления. В Linux она организована преимущественно через специальную оболочку.</p>
12 <p>Далее предстоит изучить The Linux Shell, а также команду the read. Эта информация пригодится как новичкам, так и более опытным пользователям/администраторам.</p>
12 <p>Далее предстоит изучить The Linux Shell, а также команду the read. Эта информация пригодится как новичкам, так и более опытным пользователям/администраторам.</p>
13 <h2>Linux Shell</h2>
13 <h2>Linux Shell</h2>
14 <p>Bourne Shell - это оболочка или терминал. Специальная консоль, используемая для выполнения различных команд в операционных системах Linux (Ubuntu и других). Командная строка, представленная текстовым интерфейсом пользователя. Он через команды отправляется к машине.</p>
14 <p>Bourne Shell - это оболочка или терминал. Специальная консоль, используемая для выполнения различных команд в операционных системах Linux (Ubuntu и других). Командная строка, представленная текстовым интерфейсом пользователя. Он через команды отправляется к машине.</p>
15 <p>По умолчанию язык оболочки в Линукс называется the bash. Он базируется преимущественно на текстовых "запросах". Каждая обрабатываемая команда должна быть прописана в оболочке. Это - ключевое отличие от поведения пользователей в Windows, где навигация используется по принципу "найти-навести-нажать".</p>
15 <p>По умолчанию язык оболочки в Линукс называется the bash. Он базируется преимущественно на текстовых "запросах". Каждая обрабатываемая команда должна быть прописана в оболочке. Это - ключевое отличие от поведения пользователей в Windows, где навигация используется по принципу "найти-навести-нажать".</p>
16 <h3>Синтаксис команд</h3>
16 <h3>Синтаксис команд</h3>
17 <p>The bash имеет определенный синтаксис in the Shell. Команды строятся по форме:</p>
17 <p>The bash имеет определенный синтаксис in the Shell. Команды строятся по форме:</p>
18 <p>{команда} {список передаваемых аргументов}.</p>
18 <p>{команда} {список передаваемых аргументов}.</p>
19 <p>Пример - grep -inr. Данная команда используется to the поиска текстовых строк. -inr здесь является флагами или аргументами, которые будут менять то, что grep выполнит по умолчанию.</p>
19 <p>Пример - grep -inr. Данная команда используется to the поиска текстовых строк. -inr здесь является флагами или аргументами, которые будут менять то, что grep выполнит по умолчанию.</p>
20 <p>В Линуксе много различных команд, работающих на bash. Один из наиболее распространенных вариантов - это read. Эта операция представляет собой некий способ взаимодействия пользователей с вводом с клавиатуры, который отображается в качестве стандартного (stdin). Сюда же относят другие схожие описания.</p>
20 <p>В Линуксе много различных команд, работающих на bash. Один из наиболее распространенных вариантов - это read. Эта операция представляет собой некий способ взаимодействия пользователей с вводом с клавиатуры, который отображается в качестве стандартного (stdin). Сюда же относят другие схожие описания.</p>
21 <p>The read является встроенной в bash shells "инструкцией". Она служит противоположностью командам printf и echo. Используется, если необходимо, чтобы bash-скрипт принимал пользовательский ввод.</p>
21 <p>The read является встроенной в bash shells "инструкцией". Она служит противоположностью командам printf и echo. Используется, если необходимо, чтобы bash-скрипт принимал пользовательский ввод.</p>
22 <p>Read в Linux:</p>
22 <p>Read в Linux:</p>
23 <ul><li>считывает строчку из стандартного ввода или файлового дескриптора (of the file descriptor);</li>
23 <ul><li>считывает строчку из стандартного ввода или файлового дескриптора (of the file descriptor);</li>
24 <li>разбивает строчку на два слова;</li>
24 <li>разбивает строчку на два слова;</li>
25 <li>первое слово присваивается первому имени;</li>
25 <li>первое слово присваивается первому имени;</li>
26 <li>второе - второму и так далее.</li>
26 <li>второе - второму и так далее.</li>
27 </ul><p>The read имеет простую форму представления:</p>
27 </ul><p>The read имеет простую форму представления:</p>
28 <p>read [options] [name…]</p>
28 <p>read [options] [name…]</p>
29 <p>Если слов, считываемых из входного потока меньше имен, оставшимся именам будут присваиваться пустые значения. Для того, чтобы разбить строку for слова или лексемы, необходимо использовать символы, хранящиеся в переменной IFS. Для отмены особого свойства следующего символьного значения или продолжения строки потребуется использование символ обратного слеша. Если имена не указываются, reading string назначается переменной REPLY.</p>
29 <p>Если слов, считываемых из входного потока меньше имен, оставшимся именам будут присваиваться пустые значения. Для того, чтобы разбить строку for слова или лексемы, необходимо использовать символы, хранящиеся в переменной IFS. Для отмены особого свойства следующего символьного значения или продолжения строки потребуется использование символ обратного слеша. Если имена не указываются, reading string назначается переменной REPLY.</p>
30 <h3>Параметры</h3>
30 <h3>Параметры</h3>
31 <p>The read обладает различными параметрами, которые can be used в bash-script. Перед изучением нескольких наглядных примеров для изучения принципов функционирования соответствующей инструкции необходимо изучить эти характеристики.</p>
31 <p>The read обладает различными параметрами, которые can be used в bash-script. Перед изучением нескольких наглядных примеров для изучения принципов функционирования соответствующей инструкции необходимо изучить эти характеристики.</p>
32 Название параметраХарактеристика-a anameСлова будут присваиваться подряд идущим элементам массива (in a array) Aname. Индекс начинается с 0. Перед присваиванием все компоненты удаляются из aname. Другие аргументы name будут проигнорированы.-d delimЗавершающим элементов входной строки используется is a symbol delim.-eЧтение строки. Для этого используется readline.-n ncharsThe read вернет управление после чтения символов nchars. Завершения ввода строки не будет ожидаться.-p promptПеред тем как reads входные данные, сначала выдается prompt. Он не завершается символом перевода строки. Соответствующий компонент приглашения отображается тогда, когда входные данные поступают с терминала.-rЕсли задан соответствующий параметр, обратный слеш не будет использоваться для отмены свойств специальных символов. Он рассматривается в качестве части строки.-sТихий режим. The read -s работает легко - эхо-ответ не выдается, если входная информация поступает с терминала.-t timeoutЕсли в течение timeout секунд чтение входной строки не завершается, the read получает состояние таймаута and the code неудачной обработки "инструкции" будет возвращен в качестве ответа. Параметр не работает, когда the read читает входные данные не из терминала или конвейера.-u fdЧтение входных данных из дескриптора файла fd.<p>Все эти параметры могут быть включены в your bash-скрипт. Далее предстоит изучить несколько наглядных примеров, помогающих понять принципы функционирования the read s.</p>
32 Название параметраХарактеристика-a anameСлова будут присваиваться подряд идущим элементам массива (in a array) Aname. Индекс начинается с 0. Перед присваиванием все компоненты удаляются из aname. Другие аргументы name будут проигнорированы.-d delimЗавершающим элементов входной строки используется is a symbol delim.-eЧтение строки. Для этого используется readline.-n ncharsThe read вернет управление после чтения символов nchars. Завершения ввода строки не будет ожидаться.-p promptПеред тем как reads входные данные, сначала выдается prompt. Он не завершается символом перевода строки. Соответствующий компонент приглашения отображается тогда, когда входные данные поступают с терминала.-rЕсли задан соответствующий параметр, обратный слеш не будет использоваться для отмены свойств специальных символов. Он рассматривается в качестве части строки.-sТихий режим. The read -s работает легко - эхо-ответ не выдается, если входная информация поступает с терминала.-t timeoutЕсли в течение timeout секунд чтение входной строки не завершается, the read получает состояние таймаута and the code неудачной обработки "инструкции" будет возвращен в качестве ответа. Параметр не работает, когда the read читает входные данные не из терминала или конвейера.-u fdЧтение входных данных из дескриптора файла fd.<p>Все эти параметры могут быть включены в your bash-скрипт. Далее предстоит изучить несколько наглядных примеров, помогающих понять принципы функционирования the read s.</p>
33 <h2>Команда без параметров</h2>
33 <h2>Команда без параметров</h2>
34 <p>Чтобы начать использование изучаемой команды без параметров, потребуется нажать Enter. Это позволит начать захват. Система захватывает ввод до тех пор, пока клиент снова не нажмет на Enter.</p>
34 <p>Чтобы начать использование изучаемой команды без параметров, потребуется нажать Enter. Это позволит начать захват. Система захватывает ввод до тех пор, пока клиент снова не нажмет на Enter.</p>
35 <p>По умолчанию информация хранится в переменной с именем $REPLY.</p>
35 <p>По умолчанию информация хранится в переменной с именем $REPLY.</p>
36 <p>Здесь символ стрелки, смотрящей to a left, отображается при нажатии на клавишу Enter. Специально объявлять $REPLY не потребуется.</p>
36 <p>Здесь символ стрелки, смотрящей to a left, отображается при нажатии на клавишу Enter. Специально объявлять $REPLY не потребуется.</p>
37 <p>Для объявления собственной переменной while read достаточно ввести ее имя. Для вызова соответствующего компонента предстоит использовать знак "доллара" перед "названием" переменной.</p>
37 <p>Для объявления собственной переменной while read достаточно ввести ее имя. Для вызова соответствующего компонента предстоит использовать знак "доллара" перед "названием" переменной.</p>
38 <p>Вот - пример, в котором создается переменная AndreyEx. Ей будет присваиваться значение ввода:</p>
38 <p>Вот - пример, в котором создается переменная AndreyEx. Ей будет присваиваться значение ввода:</p>
39 <p>При использовании read s (и других параметров команды) необходимо помнить - имена переменных являются чувствительными к регистру.</p>
39 <p>При использовании read s (и других параметров команды) необходимо помнить - имена переменных являются чувствительными к регистру.</p>
40 <h2>Подсказка</h2>
40 <h2>Подсказка</h2>
41 <p>Второй пример - когда необходимо захватить ввод пользователя при написании сценария. Существует опция to read, которая создает подсказки. Они требуются для упрощения кода.</p>
41 <p>Второй пример - когда необходимо захватить ввод пользователя при написании сценария. Существует опция to read, которая создает подсказки. Они требуются для упрощения кода.</p>
42 <p>Echo-команды и дополнительные строки для создания подсказок не понадобятся. Достаточно использовать again the read с флагом -p:</p>
42 <p>Echo-команды и дополнительные строки для создания подсказок не понадобятся. Достаточно использовать again the read с флагом -p:</p>
43 <p>Текст, которые будет вводиться в кавычках, отображается так, как задумано User does not click to Enter, чтобы начать ввод данных. Результат сохраняется в переменной $username.</p>
43 <p>Текст, которые будет вводиться в кавычках, отображается так, как задумано User does not click to Enter, чтобы начать ввод данных. Результат сохраняется в переменной $username.</p>
44 <h2>Использование тихой опции</h2>
44 <h2>Использование тихой опции</h2>
45 <p>The read s - это тихая опция. Вот bash-скрипт, который поможет лучше разобраться с соответствующим флагом:</p>
45 <p>The read s - это тихая опция. Вот bash-скрипт, который поможет лучше разобраться с соответствующим флагом:</p>
46 <p>Скрипт называется secret.sh. При его обработке на экране появится такая ситуация:</p>
46 <p>Скрипт называется secret.sh. При его обработке на экране появится такая ситуация:</p>
47 <p>Опция s в read маскировала ввод при указании пароля. Это поверхностный метод. Он не предполагает реального обеспечения безопасности.</p>
47 <p>Опция s в read маскировала ввод при указании пароля. Это поверхностный метод. Он не предполагает реального обеспечения безопасности.</p>
48 <h2>Ограничения символов</h2>
48 <h2>Ограничения символов</h2>
49 <p>Ограничения по вводимым символам - еще одна операция, которую легко to do. Пусть ограничение устанавливается на длине n. Ниже - пример, в котором допускается ввод не более 5 символов.</p>
49 <p>Ограничения по вводимым символам - еще одна операция, которую легко to do. Пусть ограничение устанавливается на длине n. Ниже - пример, в котором допускается ввод не более 5 символов.</p>
50 <p>Достаточно в предыдущий пример добавить -n N, где N - это номер выбора. В случае с примером для пароля результат обработки скрипта станет таким:</p>
50 <p>Достаточно в предыдущий пример добавить -n N, где N - это номер выбора. В случае с примером для пароля результат обработки скрипта станет таким:</p>
51 <p>Сценарий перестал собирать ввод после 5 символов пользовательского имени. Меньшее количество "составляющих" все еще доступно. Если необходимо наложить на соответствующую возможность ограничения, потребуется использовать запись -N. Соответствующая модификация требует от пользователя ввода строго установленного количества символов.</p>
51 <p>Сценарий перестал собирать ввод после 5 символов пользовательского имени. Меньшее количество "составляющих" все еще доступно. Если необходимо наложить на соответствующую возможность ограничения, потребуется использовать запись -N. Соответствующая модификация требует от пользователя ввода строго установленного количества символов.</p>
52 <h2>Хранение данных в массиве</h2>
52 <h2>Хранение данных в массиве</h2>
53 <p>The read может использоваться для формирования собственных массивов. Это значит, что пользователь сможет указать "части" ввода для элементов в массиве. По умолчанию "пробел" на клавиатуре служит разделителем.</p>
53 <p>The read может использоваться для формирования собственных массивов. Это значит, что пользователь сможет указать "части" ввода для элементов в массиве. По умолчанию "пробел" на клавиатуре служит разделителем.</p>
54 <p>При работе с массивами необходимо запомнить следующее:</p>
54 <p>При работе с массивами необходимо запомнить следующее:</p>
55 <ul><li>элементы массива разделяются пробелами;</li>
55 <ul><li>элементы массива разделяются пробелами;</li>
56 <li>при помещении только переменной @, она будет повторяться и печатать весь цикл;</li>
56 <li>при помещении только переменной @, она будет повторяться и печатать весь цикл;</li>
57 <li>символ @ используется для предоставления элемента, после двоеточий указывается итерация от индекса 0 до 3 (согласно предложенному примеру);</li>
57 <li>символ @ используется для предоставления элемента, после двоеточий указывается итерация от индекса 0 до 3 (согласно предложенному примеру);</li>
58 <li>происходит печать элемента с индексом 0.</li>
58 <li>происходит печать элемента с индексом 0.</li>
59 </ul><p>Если даны и массив, и имя переменной, все слова будут присваиваться массиву.</p>
59 </ul><p>Если даны и массив, и имя переменной, все слова будут присваиваться массиву.</p>
60 <h2>Функция тайм-аута</h2>
60 <h2>Функция тайм-аута</h2>
61 <p>К the read можно добавить тайм-аут. Если за отведенное время не произойдет ввод данных, приложение или продолжит работу, или завершится.</p>
61 <p>К the read можно добавить тайм-аут. Если за отведенное время не произойдет ввод данных, приложение или продолжит работу, или завершится.</p>
62 <p>В заданном примере терминал подождал 3 секунды, после чего завершил чтение приложения.<a>Здесь</a>можно увидеть видео-урок по the read в Линуксе. Лучше изучить эту команду, как и другие в bash, помогут дистанционные компьютерные курсы.</p>
62 <p>В заданном примере терминал подождал 3 секунды, после чего завершил чтение приложения.<a>Здесь</a>можно увидеть видео-урок по the read в Линуксе. Лучше изучить эту команду, как и другие в bash, помогут дистанционные компьютерные курсы.</p>
63 <p>Интересует <a>Linux и системное администрирование</a>? Добро пожаловать на курс в Otus!<a></a></p>
63 <p>Интересует <a>Linux и системное администрирование</a>? Добро пожаловать на курс в Otus!<a></a></p>
64  
64