fbpx
linux
35

Полезные советы и фишки оболочки Bash — Часть 5

5
(1)

В этой статье мы рассмотрим ещё несколько "фишек" Bash: пользовательский ввод для тех случаев, когда вы хотите чтобы пользователь "нажал Enter для продолжения"; чтение строки ввода и сохранение ее в переменной для последующей обработки. Мы также рассмотрим, как найти страницы руководства для встроенных команд, которые в противном случае могут показаться недоступными.

В этом цикле статей вы узнаете:

  • Полезные советы, приемы и методы работы с командной строкой Bash
  • Как взаимодействовать с командной строкой Bash продвинутым образом
  • Как отточить свои навыки работы с Bash в целом и стать более опытным пользователем Bash

Содержание:

  1. Требования к программному обеспечению и условные обозначения
  2. Просим пользователя нажать Enter для продолжения
  3. Считываем ввод из скрипта
  4. Где эта manpage?!

Требования к программному обеспечению и условные обозначения

Категория Требования или используемая версия программного обеспечения
Система Свободные дистрибутивы GNU/Linux
Программное обеспечение Командная строка Bash, система на базе Linux
Другое Различные утилиты, которые либо включены в оболочку Bash по умолчанию, либо могут быть установлены с помощью sudo apt-get install tool-name (где tool-name представляет собой инструмент, который вы хотите установить)
Условные обозначения # - требует, чтобы заданные linux-команды выполнялись с правами root либо непосредственно от имени пользователя root, либо с помощью команды sudo.
$ - требует, чтобы заданные linux-команды выполнялись от имени обычного непривилегированного пользователя

Пример 1: Просим пользователя нажать Enter для продолжения

Приходилось ли вам писать сценарий, в котором вы хотели попросить пользователя "нажать любую клавишу, чтобы продолжить"? Просить пользователя нажать любую клавишу явное не лучшая идея - некоторые пользователи могут нажать клавишу power 🙂 - а вот попросить пользователя нажать клавишу Enter не так уж сложно в рамках скрипта:

$ cat test.sh 
#!/bin/bash
read -p 'Нажмите Enter, чтобы продолжить...'
echo 'Спасибо. Enter нажат... Приходите снова...'

Флаг -p (prompt) для read создает текстовую подсказку.

Давайте проверим!

Я вот нажал Enter и... скрипт сработал правильно.


Пример 2: Считываем ввод из скрипта

Давайте рассмотрим Пример 1 подробнее и запишем введённые данные в переменную:

Всё работает. Вы можете использовать read --help для получения дополнительной информации. Обратите внимание, что man read не работает, так как это приведет вас к руководству программиста Linux по выполнению чтения файла!

Настоятельно рекомендуется прочитать руководство по read, так как по умолчанию read будет делать некоторые интересные разделения слов. В нашем примере это было скрыто из-за того, что мы указали только одну переменную хранения в команде read, но можно узнать гораздо больше, особенно если вы знаете, как работать с переменной IFS, которая указывает - нескольким инструментам Bash - каким должен быть разделитель, в сочетании с указанием нескольких переменных хранения.

Кстати, статью о скриптинге в Bash можно найти в нашем блоге тут.


Пример 3: Где эта manpage?!

Как мы видели в Примере 2, иногда кажется, что страница man отсутствует или приводит к неверному результату, как в нашем примере с man read. Однако это не так. Причина того, что некоторые man-страницы кажутся недоступными, заключается в том, что они предназначены для встроенных команд.

Вместо этого вы можете использовать команду man builtins, чтобы получить доступ к руководству для всех встроенных команд.

Таким образом, если вы хотите получить доступ к полному руководству, например, для команды read, вы можете воспользоваться командой man builtins и найти там команду read.

Если вы хотите узнать больше о Bash в целом, не забудьте прочесть и остальные статьи из цикла:

  1. Полезные советы и фишки оболочки Bash, Часть 1
  2. Полезные советы и фишки оболочки Bash, Часть 2
  3. Полезные советы и фишки оболочки Bash, Часть 3
  4. Полезные советы и фишки оболочки Bash, Часть 4
  5. Полезные советы и фишки оболочки Bash, Часть 5

Заключение

В этой статье мы рассмотрели ввод в командной строке и оперированием им в скрипте. Мы рассмотрели, как попросить пользователя нажать клавишу Enter, чтобы продолжить, а также как прочитать строку ввода и сохранить ее в переменной. Мы также намекнули на дальнейшее изучение read и IFS, и, наконец, рассмотрели, как найти manpages для встроенных команд. Наслаждайтесь!

Оригинал статьи можно найти здесь.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 5 / 5. Количество оценок: 1

Оценок пока нет. Поставьте оценку первым.

Сожалеем, что вы поставили низкую оценку!

Позвольте нам стать лучше!

Расскажите, как нам стать лучше?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Читают сейчас
Меню

Попробуй курс Linux и DevOPS