Вставка спецсимволов в Bash

Нам уже известно, что большинство команд может принимать различные параметры и аргументы. Параметры могу иметь вид дефиса и одной буквы, либо двойного дефиса и полного названия параметра. Например, следующие вызовы команды ls полностью эквивалентны, так как ключ -r является короткой формой от —reverse.

Зачем же нужно две формы? Короткая форма используется для быстрого ввода в командной строке. В программных скриптах, с написанием которых мы познакомимся позже, предпочтительно использовать длинную форму. Благодаря более понятным названиям скрипт легко будет прочитать через длительное время и понять без необходимости обращения к документации по командам. Чуть больше букв при наборе программы сейчас, намного меньше работы в будущем 🙂 А некоторые параметры не имеют короткой формы.

Использование параметров в длинной форме в большинстве случаев делают командную строку слишком длинной. Для борьбы с проблемой можно разбить параметры по строкам. Если перед переносом строки (нажатием на клавишу Enter) поставить символ экранирования “\” (обратная косая черта), то Linux Shell проигнорирует перенос строки и продолжит завершения ввода команды, а не начнет ее сразу выполнять.

В таком виде команда выглядит наиболее понятна при чтении. Но очень важно, чтобы перенос строки после обратной косой черты следовал сразу без пробелов перед ним. Если после косой черты будет пробел, то проигнорирован будет именно пробел, а не перенос строки, и введенная команда будет сразу же выполнена после нажатия на клавишу Enter.

Символ обратной косой черты также используется для вставки специальных символов в текст. Вот несколько наиболее часто используемых.

  • \n — добавляет перенос строки
  • \t — добавляет символ табуляции
  • \a — создает звуковой сигнал
  • \\ — добавляет символ “\” (обратная косая черта)
  • \f — добавляет разрыв страницы (при печати на принтере)

Вставка специальных символов при помощи обратной косой черты очень популярна. Этот прием впервые появился в языке программирования C. В наши дни Linux Shell, C++, Perl, Python, awk, tcl и множество других языков программирования поддерживают такой ввод символов.  Используя команду echo с ключом -e можно посмотреть как это работает на примерах.

Поэкспериментировать с примерами можно на виртуальной машине.

Демонстрация вставки спецсимволов в команде echo при помощи обратной косой черты

Звуковой сигнал, к сожалению, мы не услышим. Оконный терминал его не поддерживает 🙁