В зависимости от контекста применения, символ + может выступать как оператор регулярного выражения.
+
Ключ (опция).Дополнительный флаг для ключей (опций) команд.
Отдельные внешние и встроенные команды используют символ "+" для разрешения некоторой опции, а символ "-" -- для запрещения.
%
модуль.Модуль (остаток от деления) -- арифметическая операция.
В зависимости от контекста применения, символ % может выступать в качестве шаблона.
~
домашний каталог.[тильда] Соответствует содержимому внутренней переменной $HOME. ~bozo -- домашний каталог пользователя bozo, а команда ls ~bozoвыведет содержимое его домашнего каталога. ~/ -- это домашний каталог текущего пользователя, а команда ls ~/выведет содержимое домашнего каталога текущего пользователя.
bash$ echo ~bozo
/home/bozo
bash$ echo ~
/home/bozo
bash$ echo ~/
/home/bozo/
bash$ echo ~:
/home/bozo:
bash$ echo ~nonexistent-user
~nonexistent-user
~+
текущий рабочий каталог.Соответствует содержимому внутренней переменной $PWD.
~-
предыдущий рабочий каталог.Соответствует содержимому внутренней переменной $OLDPWD.
^
начало-строки.В регулярных выражениях символ "^" задает начало строки текста.
Управляющий символ
изменяет поведение терминала или управляет выводом текста.Управляющий символ набирается с клавиатуры как комбинация CONTROL+ <���клавиша>.
Ctl-C
Завершение выполнения процесса.
Ctl-D
Выход из командного интерпретатора (log out) (аналог команды exit).
"EOF" (признак конца файла). Этот символ может выступать в качестве завершающего при вводе с stdin .
Ctl-G
"BEL" (звуковой сигнал -- "звонок").
Ctl-H
Backspace -- удаление предыдущего символа.
#!/bin/bash
# Вставка символа Ctl-H в строку.
a="^H^H" # Два символа Ctl-H (backspace).
echo "abcdef" # abcdef
echo -n "abcdef$a " # abcd f
# Пробел в конце ^ ^ двойной шаг назад.
echo -n "abcdef$a" # abcdef
# Пробела в конце нет backspace не работает (почему?).
# Результаты могут получиться совсем не те, что вы ожидаете.
echo; echo
Ctl-J
Возврат каретки.
Ctl-L
Перевод формата (очистка экрана (окна) терминала). Аналогична команде clear.
Ctl-M
Перевод строки.
Ctl-U
Стирание строки ввода.
Ctl-Z
Приостановка процесса.
Пробельный символ
используется как разделитель команд или переменных.В качестве пробельного символа могут выступать -- собственно пробел (space), символ табуляции, символ перевода строки, символ возврата каретки или комбинация из вышеперечисленных символов. В некоторых случаях, таких как присваивание значений переменным, использование пробельных символов недопустимо.
Пустые строки никак не обрабатываются командным интерпретатором и могут свободно использоваться для визуального выделения отдельных блоков сценария.
$IFS -- переменная специального назначения. Содержит символы-разделители полей, используемые некоторыми командами. По-умолчанию -- пробельные символы.
Глава 4. Переменные и параметры. Введение.
Переменные -- это одна из основ любого языка программирования. Они учавствуют в арифметических операциях, в синтаксическом анализе строк и совершенно необходимы для абстрагирования каких либо величин с помощью символических имен. Физически переменные представляют собой ни что иное как участки памяти, в которые записана некоторая информация.
4.1. Подстановка переменных
Когда интерпретатор встречает в тексте сценария имя переменной, то он вместо него подставляет значение этой переменной. Поэтому ссылки на переменные называются подстановкой переменных .
$
Необходимо всегда помнить о различиях между именем переменной и ее значением . Если variable1-- это имя переменной, то $variable1-- это ссылка на ее значение . "Чистые" имена переменных, без префикса $, могут использоваться только при объявлении переменный, при присваивании переменной некоторого значения, при удалении (сбросе) , при экспорте и в особых случаях -- когда переменная представляет собой название сигнала (см. Пример 29-5). Присваивание может производится с помощью символа = (например: var1=27 ), инструкцией read и в заголовке цикла ( for var2 in 1 2 3 ).
Читать дальше