Чтение онлайн

на главную - закладки

Жанры

Искусство программирования на языке сценариев командной оболочки

Купер Мендель

Шрифт:

# Примеры выше предоставлены S.C.

exit 0

Одиночные кавычки (' ') схожи по своему действию с двойными кавычками, только не допускают обращение к переменным, поскольку специальный символ "$" внутри одинарных кавычек воспринимается как обычный символ. Внутри одиночных кавычек, любой специальный символ, за исключением ', интерпретируется как простой символ. Одиночные кавычки ("строгие, или полные кавычки") следует рассматривать как более строгий

вариант чем двойные кавычки ("нестрогие, или неполные кавычки").

Поскольку внутри одиночных кавычек даже экранирующий (\) символ воспринимается как обычный символ, попытка вывести одиночную кавычку внутри строки, ограниченной одинарными кавычками, не даст желаемого результата.

echo "Why can't I write 's between single quotes"

echo

# Обходной метод.

echo 'Why can'\''t I write '"'"'s between single quotes'

# |-------| |----------| |-----------------------|

# Три строки, ограниченных одинарными кавычками,

# и экранированные одиночные кавычки между ними.

# Пример любезно предоставлен Stephane Chazelas.

Экранирование– - это способ заключения в кавычки одиночного символа. Экранирующий (escape) символ (\) сообщает интерпретатору, что следующий за ним символ должен восприниматься как обычный символ.

С отдельными командами и утилитами, такими как echo и sed, экранирующий символ может применяться для получения обратного эффекта - когда обычные символы при экранировании приобретают специальное значение.

Специальное назначение некоторых экранированных символов

используемых совместно с echo и sed

\n

перевод строки (новая строка)

\r

перевод каретки

\t

табуляция

\v

вертикальная табуляция

\b

забой (backspace)

\a

"звонок" (сигнал)

\0xx

ASCII-символ с кодом 0xx в восьмеричном виде)

Пример 5-2. Экранированные символы

#!/bin/bash

# escaped.sh: экранированные символы

echo; echo

echo "\v\v\v\v" # Вывод последовательности символов \v\v\v\v.

# Для вывода экранированных символов следует использовать ключ -e.

echo "============="

echo "ВЕРТИКАЛЬНАЯ

ТАБУЛЯЦИЯ"

echo -e "\v\v\v\v" # Вывод 4-х вертикальных табуляций.

echo "=============="

echo "КАВЫЧКИ"

echo -e "\042" # Выводит символ " (кавычки с восьмеричным кодом ASCII 42).

echo "=============="

# Конструкция $'\X' делает использование ключа -e необязательным.

echo; echo "НОВАЯ СТРОКА И ЗВОНОК"

echo $'\n' # Перевод строки.

echo $'\a' # Звонок (сигнал).

echo "==============="

echo "КАВЫЧКИ"

# Bash версии 2 и выше допускает использование конструкции $'\nnn'.

# Обратите внимание: здесь под '\nnn' подразумевается восьмеричное значение.

echo $'\t \042 \t' # Кавычки (") окруженные табуляцией.

# В конструкции $'\xhhh' допускается использовать и шестнадцатеричные значения.

echo $'\t \x22 \t' # Кавычки (") окруженные табуляцией.

# Спасибо Greg Keraunen, за это примечание.

# Ранние версии Bash допускали употребление конструкции в виде '\x022'.

echo "==============="

echo

# Запись ASCII-символов в переменную.

# ----------------------------------------

quote=$'\042' # запись символа " в переменную.

echo "$quote Эта часть строки ограничена кавычками, $quote а эта -- нет."

echo

# Конкатенация ASCII-символов в переменную.

triple_underline=$'\137\137\137' # 137 -- это восьмеричный код символа '_'.

echo "$triple_underline ПОДЧЕРКИВАНИЕ $triple_underline"

echo

ABC=$'\101\102\103\010' # 101, 102, 103 это A, B и C соответственно.

echo $ABC

echo; echo

escape=$'\033' # 033 -- восьмеричный код экранирующего символа.

echo "\"escape\" выводится как $escape"

Поделиться:
Популярные книги

Отморозок 3

Поповский Андрей Владимирович
3. Отморозок
Фантастика:
попаданцы
5.00
рейтинг книги
Отморозок 3

Род Корневых будет жить!

Кун Антон
1. Тайны рода
Фантастика:
фэнтези
попаданцы
аниме
7.00
рейтинг книги
Род Корневых будет жить!

На границе империй. Том 7. Часть 2

INDIGO
8. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
6.13
рейтинг книги
На границе империй. Том 7. Часть 2

Полковник Империи

Ланцов Михаил Алексеевич
3. Безумный Макс
Фантастика:
альтернативная история
6.58
рейтинг книги
Полковник Империи

Идеальный мир для Лекаря 11

Сапфир Олег
11. Лекарь
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 11

Последняя Арена 2

Греков Сергей
2. Последняя Арена
Фантастика:
рпг
постапокалипсис
6.00
рейтинг книги
Последняя Арена 2

Скрываясь в тени

Мазуров Дмитрий
2. Теневой путь
Фантастика:
боевая фантастика
7.84
рейтинг книги
Скрываясь в тени

Герцог и я

Куин Джулия
1. Бриджертоны
Любовные романы:
исторические любовные романы
8.92
рейтинг книги
Герцог и я

Владеющий

Злобин Михаил
2. Пророк Дьявола
Фантастика:
фэнтези
8.50
рейтинг книги
Владеющий

Развод с миллиардером

Вильде Арина
1. Золушка и миллиардер
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Развод с миллиардером

Паладин из прошлого тысячелетия

Еслер Андрей
1. Соприкосновение миров
Фантастика:
боевая фантастика
попаданцы
6.25
рейтинг книги
Паладин из прошлого тысячелетия

Боги, пиво и дурак. Том 6

Горина Юлия Николаевна
6. Боги, пиво и дурак
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Боги, пиво и дурак. Том 6

Бестужев. Служба Государевой Безопасности. Книга вторая

Измайлов Сергей
2. Граф Бестужев
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Бестужев. Служба Государевой Безопасности. Книга вторая

Орден Багровой бури. Книга 6

Ермоленков Алексей
6. Орден Багровой бури
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Орден Багровой бури. Книга 6