Объединение команд это очень полезная операция которую я сам очень часто применяю в терминале. Допустим вам нужно куда-то срочно уйти, но вы хотите скомпилировать что-либо. Вы знаете, что сначала нужно ввести ./configure потом make и только потом make install, при том окончание работы make иногда приходиться ждать час. В таких моментах придет объединение команд. Зная этот прием, вы введете ./configure && make && make install и уйдете по своим делам в то время как все нужные команды выполняться сами и полностью завершат компиляцию.
Можно даже добавить команду shutdown -h now в конец для отключения компьютера после выполнения всех операций.
Последовательное выполнение команд вне зависимости от исхода работы предыдущей.
Выполнить сколько угодно команд последовательно можно путем разделение команд символом ; (точка с запятой).
Пример:
./configure ; make ; make install
-выполняться все команды последовательно вне зависимости от исхода предыдущих.
То есть, если в ./configure будет выведено сообщение об ошибки, то интерпретатор все равно попробует выполнить make и make install.
Последовательное выполнение команд при условии успешного завершения предыдущих.
Символы && (два амперсанда) позволяют выполнять действие подобные предыдущей конструкции, но при не успешном завершении команды интерпретатор прекратит выполнение всего сценария.
Например:
./configure && make && make install
-если в ./configure будет ошибка, то последующие команды не будут исполняться. Если же все прошло удачно, то начнут выполняться make и make install притом если в make будет ошибка, то make install выполняться тоже не будет.
Выполнение команды, если предыдущая завершилась ошибкой.
Можно выполнить команды не только при успешном завершении предыдущей, но и при ошибочном завершении предыдущей с помощью символов || (две прямых черты).
Пример:
make install || echo 'Ошибка!'
-выведется слово ошибка при неудачном завершении команды make install, иначе это слово выводиться не будет.
Использование выходных данных одной команды при вызове другой.
Давайте посмотрим на пример:
touch $(uname -r)
Эта команда создаст файл имя которого будет версия текущего ядра linux.
Команде touch передается с помощью конструкции $() команда выходные данные которой можно использовать для аргумента первой команды.
Запись результатов выполнения команды в файл.
Это очень удобная функция! С помощью символа > (больше) можно записать вывод команды в текстовый файл.
Пример:
ls -R /home > home.txt
-эта команды запишет в файл home.txt все папки и файлы находящиеся в домашнем каталоге и подкаталогах. В стандартный вывод ничего не выведется - все пойдет исключительно в файл.
Использование дозаписи
Чтобы файл не очищался, а новые данные добавлялись в конец надо использовать символы >> (два знака больше)
Пример:
ls >> home.txt
-при всех последующих вызовах такой команды новые данные будут добавляться в конец файла.
Спасибо! Большинства этого не знал