5. Используйте эскейп-символы, чтобы управлять отображением длинных команд.
Это пятая «хорошая привычка» из статьи «Learn 10 good UNIX usage habits» от IBM.
Начать с первой части: «умное использование mkdir» .
Перейти к предыдущей части: «про кавычки и переменные» .
Напоминаю, что перевод вольный. Добавлены комментарии, когда было что добавить из «хороших привычек».
Возможно, вы уже видели код, в котором используются бекслеши (\) в конце строк. А за ними на следующей строке уже следует часть кода, которая не уместилась в строку. Многие оболочки командной строки поддерживают подобное разбиение строк — так мы можем экранировать переводы строк. Например:
$ tar czvf project.tar.gz project/bin \ project/demo project/doc project/lib
Однако, не нужно этим злоупотреблять — если можешь написать несколько коротких команд вместо одной длинной — пиши короткие. Так понятнее.
Всё же есть неплохие примеры использования бекслеша для экранирования перевода строки, создания многострочных команд. К примеру, с помощью них можно сделать более читаемым код с управляющими операторами:
~ $ cd tmp/a/b/c || \ > mkdir -p tmp/a/b/c && \ > tar xvf -C tmp/a/b/c ~/archive.tar
Или даже так:
~ $ cd tmp/a/b/c \ > || \ > mkdir -p tmp/a/b/c \ > && \ > tar xvf -C tmp/a/b/c ~/archive.tar
Таким образом логические части разделены визуально, и их проще читать.
Также хочется отметить удобство разделения команды на строки, когда команда принимает список аргументов. Для примера можно рассмотреть apt:
apt install -y \
git-core \
virtualenvwrapper \
python3 \
python3-pip \
python3-dev \
libxml2-dev \
libxslt1-dev \
build-essential \
libffi-dev \
libssl-dev \
libjpeg8-dev \
zlib1g-dev
Такое перечисление библиотек куда проще воспринимать, нежели однострочную портянку. Этот код ещё и проще поддерживать — в git diff будет видно: какие пакеты были удалены, а какие добавлены в список установки.
Используйте экранирующие последовательности, чтобы сделать ваш код более понятным!