Если значение переменной начинается с символа "-", то это тоже может быть причиной появления ошибок.
-
предыдущий рабочий каталог.
[дефис] Команда cd - выполнит переход в предыдущий рабочий каталог, путь к которому хранится в переменной окружения $OLDPWD .-
Минус.
Знак минус в арифметических операциях.=
Символ "равно".
Оператор присваиванияВ зависимости от контекста применения, символ "=" может выступать в качестве оператора сравнения.
+
Плюс.
Оператор сложения в арифметических операциях.В зависимости от контекста применения, символ + может выступать как оператор регулярного выражения.
+
Ключ (опция).
Дополнительный флаг для ключей (опций) команд.Отдельные внешние и встроенные команды используют символ "+" для разрешения некоторой опции, а символ "-" -- для запрещения.
%
модуль.
Модуль (остаток от деления) -- арифметическая операция.В зависимости от контекста применения, символ % может выступать в качестве шаблона.
~
домашний каталог.
[тильда] Соответствует содержимому внутренней переменной $HOME.~+
текущий рабочий каталог.
Соответствует содержимому внутренней переменной $PWD.~-
предыдущий рабочий каталог.
Соответствует содержимому внутренней переменной $OLDPWD.^
начало-строки.
В регулярных выражениях символ "^" задает начало строки текста.Управляющий символ
изменяет поведение терминала или управляет выводом текста.
Управляющий символ набирается с клавиатуры как комбинация CONTROL + <клавиша>. Ctl-C
Завершение выполнения процесса.
Ctl-D
Выход из командного интерпретатора (log out) (аналог команды exit).
"EOF" (признак конца файла). Этот символ может выступать в качестве завершающего при вводе с
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. Подстановка переменных