Переменные и пользовательский ввод
Научитесь объявлять и использовать переменные в скриптах, а также запрашивать ввод у пользователей, чтобы сделать скрипты интерактивными.
«Переменные и пользовательский ввод» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.
Что такое переменные
В написании скриптов Bash переменные похожи на именованные контейнеры, в которых хранятся данные. Представляйте их как обозначения для сведений, которые вы хотите использовать или изменять в скриптах.
Переменные делают скрипты гибкими, пригодными для повторного использования и более удобными в управлении, поскольку позволяют хранить такие значения, как текст, числа и даже результаты выполнения команд.
Объявление и присваивание переменных
Чтобы создать переменную в Bash, достаточно присвоить значение имени. Специальные ключевые слова вроде var или let не нужны.
- Используйте синтаксис
VARIABLE_NAME=value. - Важно: не ставьте пробелы вокруг знака
=. - Значениями могут быть текст (строки) или числа.
Попробуем присвоить несколько значений:
#!/bin/bash
# Assigning a string
MY_NAME="CoddyKit"
# Assigning a number
LESSON_NUMBER=2
echo "Name: $MY_NAME"
echo "Lesson: $LESSON_NUMBER"Получение значений переменных
После объявления переменной получить её значение можно, поставив знак $ перед её именем. Так Bash заменяет имя переменной сохранённым в ней значением.
Например, если у вас есть MY_VAR="Hello", то команда echo $MY_VAR выведет «Hello».
#!/bin/bash
CITY="New York"
TEMPERATURE=75
echo "The city is $CITY."
echo "The temperature is $TEMPERATURE degrees."
# You can also enclose in curly braces for clarity (optional)
echo "It's ${TEMPERATURE}F in ${CITY}."Правила именования переменных
Хорошие имена переменных делают скрипты понятнее. Вот несколько правил и рекомендаций:
- Имена могут содержать буквы (a-z, A-Z), цифры (0-9) и символы подчёркивания (
_). - Они должны начинаться с буквы или символа подчёркивания.
- Имена переменных чувствительны к регистру (
myVarотличается отmyvar). - Обычно для переменных окружения и констант скрипта используют ALL_CAPS, а для локальных переменных скрипта — mixedCase или snake_case.
Переменные только для чтения
Иногда нужно, чтобы значение переменной оставалось неизменным на протяжении всего скрипта. Для этого можно использовать команду readonly, которая запрещает изменять переменную.
После установки для переменной атрибута readonly нельзя присвоить ей новое значение. Попытка сделать это приведёт к ошибке.
#!/bin/bash
APP_VERSION="1.0.0"
readonly APP_VERSION
echo "App Version: $APP_VERSION"
# Uncommenting the next line would cause an error:
# APP_VERSION="1.0.1"
# echo "New App Version: $APP_VERSION"Создание интерактивных скриптов
До сих пор наши скрипты выполняли команды без необходимости получать данные от пользователя во время работы. Но что, если вы хотите, чтобы скрипт запрашивал информацию?
Здесь пригодится ввод пользователя! Интерактивные скрипты могут изменять своё поведение в зависимости от того, что вводит пользователь, поэтому они гораздо универсальнее и удобнее.
Команда «read»
Основная команда для получения ввода от пользователя — read. При выполнении read скрипт приостанавливается и ждёт, пока пользователь что-нибудь введёт и нажмёт Enter.
Введённый пользователем текст затем сохраняется в указанной вами переменной.
#!/bin/bash
echo "Please enter your name:"
read USER_NAME
echo "Hello, $USER_NAME! Welcome to CoddyKit."Добавление приглашений с помощью «read -p»
Предыдущий пример работает, но требует двух строк: одной для приглашения с помощью echo и одной для read. Их можно объединить, используя параметр -p (приглашение) команды read.
Так взаимодействие со скриптом становится гораздо аккуратнее и нагляднее.
#!/bin/bash
read -p "What is your favorite animal? " ANIMAL
echo "Oh, so you like $ANIMAL! That's cool."Скрытие ввода с помощью «read -s»
При вводе конфиденциальных данных, например паролей, не следует показывать введённое пользователем на экране. Параметр -s (без вывода) команды read скрывает ввод во время печати.
После использования read -s рекомендуется добавить команду echo, которая выведет перевод строки. Иначе следующее приглашение может появиться в той же строке, что и скрытый ввод.
#!/bin/bash
read -sp "Enter your secret passphrase: " PASSPHRASE
echo # This adds a newline after the hidden input
echo "Passphrase received (not displayed for security)."Быстрая проверка: переменные и ввод
Рассмотрим следующий скрипт Bash:
#!/bin/bash
FAVORITE_FOOD="Pizza"
read -p "What's your favorite drink? " DRINK
echo "I like $FAVORITE_FOOD and $DRINK!"Повторение: переменные и ввод пользователя
Отличная работа! Вы изучили основы создания динамичных и интерактивных скриптов Bash.
- Переменные хранят значения с помощью
NAME=value. - Получайте значения переменных с помощью
$NAME. readonlyделает переменные константами.- Команда
readполучает ввод пользователя. - Используйте
read -p "Prompt"для приглашений в одной строке. - Используйте
read -sдля скрытого ввода конфиденциальных данных.
Эти инструменты необходимы для создания универсальных и удобных скриптов!
Часто задаваемые вопросы
Урок «Переменные и пользовательский ввод» бесплатный?
Да — полный текст урока «Переменные и пользовательский ввод» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.
Чему я научусь в уроке «Переменные и пользовательский ввод»?
Научитесь объявлять и использовать переменные в скриптах, а также запрашивать ввод у пользователей, чтобы сделать скрипты интерактивными. Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать DevOps Bootcamp?
Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Переменные и пользовательский ввод»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке DevOps Bootcamp?
Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Первый скрипт Bash и шебанг
- Переменные и пользовательский ввод
- Условные конструкции (if, else, elif)
- Работа с массивами в Bash