ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Понедельник, 31 марта, 2025
Сегодня у нас 1 праздник:
Международный День Резервного Копирования (World Backup Day). Пользователи сайта социальных новостей reddit предложили сделать дату 31.03 Международным днём резервного копирования, аргументируя это тем, что никогда заранее нельзя узнать, какие сюрпризы преподнесёт 1.04

Избегайте одиночной кавычки в Bash

Избегайте одиночной кавычки в Bash

Различные типы кавычек используются в Bash для определения строковых данных или выполнения команды. Это одинарные кавычки, двойные кавычки и обратные кавычки или обратные кавычки. Когда команда echo используется с одинарными кавычками, каждый символ строки анализируется без расширения. Это означает, что если какая-либо переменная Bash заключена в одинарные кавычки («»), имя переменной печатается вместо значения переменной. В этой статье показано использование одинарных кавычек в скрипте Bash.

 

Различные примеры одинарных кавычек в Bash

В этой части статьи показаны различные способы использования одинарных кавычек.

 

Пример 1. Чтение переменной с использованием одинарных кавычек

Создайте файл Bash со следующим сценарием, который принимает данные от пользователя. Имя переменной печатается вместо значения переменной, если переменная заключена в одинарные кавычки. В скрипте переменная печатается путем заключения в одинарные кавычки и без одинарных кавычек.

#!/bin/bash
#Принять ввод от пользователя
echo "Нравится ли вам музыка?"
read answer
#Печатать переменную в одинарных кавычках
echo "Переменная в одинарных кавычках:"
echo 'Ваш ответ $answer'
#Добавить новую строку
echo
#Печатать переменную без одинарных кавычек
echo "Переменная без одинарных кавычек:"
echo 'Ваш ответ ' $answer

 

Следующий вывод появляется после выполнения скрипта. Имя переменной $answer печатается, когда команда «echo» используется с одинарными кавычками. Значение переменной $answer выводится, когда переменная используется без кавычек в команде «echo»:

andreyex@andreyex: $ bash singlequote1.bash
Нравится ли вам музыка?
Yes
Переменная в одинарных кавычках:
Ваш ответ $answer
Переменная без одинарных кавычек:
Ваш ответ Yes
andreyex@andreyex:~$

Пример 2. Чтение нескольких переменных с другими строками в одинарных кавычках

Создайте файл Bash со следующим сценарием, который принимает два входных значения от пользователя. В скрипте значения двух переменных выводятся вместе с другим строковым значением, заключенным в одинарные кавычки.

#!/bin/bash
#Прочитать два введенных пользователем значения
read -p "Введите имя участника: " участника
read -p "Введите значение счета: " score
#Вывести одну кавычку в одинарных кавычках
echo $participant \' оценка ' $score

 

Следующий вывод появляется после выполнения скрипта со значением участника «AndreyEx» и значением score 99. Значения переменных $participant и $score выводятся со строковым значением «оценка» с использованием команды «echo». Окончательное строковое значение, «AndreyEx оценка 99», выводится на выходе:

andreyex@andreyex:~$ bash singlequote2.bash 
Введите имя участника: AndreyEx
Введите значение счета: 99
AndreyEx оценка 99
andreyex@andreyex:~$

Пример 3. Чтение переменной с использованием символа «$»

Создайте файл Bash со следующим сценарием, который отображает меню из трех параметров. Пользователь может выбрать любую опцию, используя любое число от 1 до 3. Переменная $placeName устанавливается на основе выбранного числового значения. Затем значение переменной $placeName выводится с помощью символа «$» в команде «echo».

#!/bin/bash
#Показать меню
echo "Популярные места:"
printf "1. Сочи \n "
printf "2. Анапа \n "
printf "3. Геленджик \n " #
Выбрать место на основе числового значения
read -p "Выберите ваше любимое место[1-3]:" place
#Установите название места на основе случая выбора $place in
1 ) placeName = "Sonargaon" ;;
2 ) placeName = "Кокс Базар" ;;
"Куаката" ;;
* ) placeName = "Неизвестно" ;;
esac
#Напечатайте одинарную кавычку в одинарных кавычках, используя '$'
echo $ 'Ваше любимое место - ' $placeName '.'

 

Следующий вывод появляется после выполнения сценария, если второй пункт меню выбран нажатием 2. Для переменной $placeName установлено значение «Анапа», которое печатается в выводе:

andreyex@andreyex:-$ bash singlequote3.bash
Популярные места:
1. Сочи
2. Анапа
3. Геленджик
Выберите ваше любимое место[1-3]: 2
Ваше любимое место - Анапа. 
andreyex@andreyex:~$

 

Пример 4. Использование одинарных кавычек в команде «Printf»

Создайте файл Bash со следующим сценарием, который берет имя человека, профессию и адрес электронной почты от пользователя, а также вводимые значения с помощью команды printf, где одинарные кавычки используются для указания типа переменной. Переменные заключаются в двойные кавычки. «%s\n» используется в команде «printf» для печати значения каждой переменной с новой строкой.

#Возьмите три входных значения от пользователя
read -p "Введите ваше имя: " name
read -p "Введите вашу профессию: " professional
read -p "Введите адрес электронной почты:" email
#Распечатайте введенные значения
echo 'Личные данные:'
printf '%s\n' "$name" "$profession" "$email"

 

Следующий вывод появляется после выполнения скрипта, если входными значениями являются «andreyex destroyer», «annihilator» и «andreyex@yahoo.com»:

andreyex@andreyex:-$ bash singlequote4.bash
Введите ваше имя: andreyex Yesmin
Введите вашу профессию: Teacher
Введите адрес электронной почты: andreyex@yahoo.com
Личные данные:
andreyex destroyer
annihilator
andreyex@yahoo.com
andreyex@andreyex:-$

 

Заключение

Цели использования одинарных кавычек объясняются в этом руководстве с использованием нескольких примеров сценария Bash. Объявление строковой переменной является основной целью одинарных кавычек, но ее нельзя использовать для доступа к значениям переменной. В этой статье показан метод использования одинарных кавычек с командами «echo» и «printf».

Exit mobile version