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