Поиск по сайту:
Доказательство ценности системы - в ее существовании. (Алан.Дж.Перлис)

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

17.06.2023
Избегайте одиночной кавычки в 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

 

Читать  Основные причины для получения сертификата Red Hat

Следующий вывод появляется после выполнения скрипта со значением участника «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"

 

Читать  Docker File против Docker Compose. В чем разница

Следующий вывод появляется после выполнения скрипта, если входными значениями являются «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».

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
Если вы серьезный игрок, вы знаете, что традиционные ноутбуки не…

Спасибо!

Теперь редакторы в курсе.