*** Оставлю это здесь не ради темы, а в качестве заметки 
Поэтому попрошу холиварню здесь не разводить, ну а если есть чем еще дополнить - welcome =) ***
Объединение команд это очень полезная операция которую я сам очень часто применяю в терминале.
Допустим вам нужно куда-то срочно уйти, но вы хотите скомпилировать что-либо. Вы знаете, что сначала нужно ввести # ./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 передается с помощью конструкции $() команда выходные данные которой можно использовать для аргумента первой команды.
Это можно записывать в другой форме, иногда так бывает удобнее: # touch `uname -r`*** Только кавычки здесь должны быть те, который на букве 'Ё', крайне слева вверху. ***
*** Запись результатов выполнения команды в файл. [ > ] ***Это очень удобная функция! С помощью символа > (больше) можно записать вывод команды в текстовый файл.
Пример: # ls -R /home > home.txt -эта команды запишет в файл home.txt все папки и файлы находящиеся в домашнем каталоге и подкаталогах. В стандартный вывод ничего не выведется - все пойдет исключительно в файл.
Иногда для этого приходится указывать явно номер файлового дескриптора вывода: 1 - SYSOUT, 2 - SYSERR
Записать сообщения об ошибках в файл: # xxx 2>home.txt
Объединить вывод программы с сообщениями об ошибках, и всё вместе это отправить в файл: # xxx 2>&1 >home.txt*** В такой записи & - обязателен, это специальная синтаксическая форма ... иначе ошибки бы записывались в файл с именем "1". ***
*** Использование дозаписи [ >> ] ***Чтобы файл не очищался, а новые данные добавлялись в конец надо использовать символы >> (два знака больше)
Пример: # ls >> home.txt -при всех последующих вызовах такой команды новые данные будут добавляться в конец файла.
- Есть, но всего 5, и их сначала нужно откомпилировать под свою систему, дать права на запуск и запустить.
Как сделать и разместить скриншот || Прежде чем создавать тему


