Linux: маленькие хитрости
Как в командной строке получить дату за предыдущий день?date -d 'day ago'
Как в командной строке присвоить текущую дату переменной?D=`date`
Как избежать отправки сообщения пользователю на e-mail при выполнении задания cron?
Перенаправить вывод следующим образом:>>/dev/null 2>&1
Как перенаправить сообщения от cron произвольному пользователю?Прописать переменную MAILTO= в файле задания
Выполнение команд пакетом
При использовании консоли бывают случаи, когда нужно запустить последовательность команд (такое может
случиться и при работе с графическим интерфейсом, но тогда решение будет отнюдь не таким простым).
Классическим примером тут служит стандартный способ установки программ из исходных текстов, требующий
запуска ./configure (возможно, с аргументами), а затем make и make install. Выполнение некоторых
из этих шагов может длиться часами, в зависимости от сложности кода и возможностей вашей машины.
Ожидать окончания одного шага, чтобы ввести следующий, неэффективно – лучше сделать так:./configure; make; make install
Точка с запятой говорит о том, что команды должны выполняться последовательно, как если бы вы вводили
их по очереди. Но тут можно заметить потенциальную проблему: а ну как ./configure или make завершатся с ошибкой?
Будут ли выполнены последовательно заданные команды? Ответ – да, причем они наверняка скроют сообщения
об ошибках, и вы не узнаете о проблемах, пока не возьметесь работать с этой программой.
Вот более практичный способ запуска данных команд:./configure && make && make install
&& – это логический оператор. Приведенная последовательность означает «если ./configure истинно, и make истинно, и make install истинно». Оболочка определяет истинность команды, запустив ее на предмет выдачи
возможных ошибок. При их наличии в первой команде следующая запускаться не станет, поскольку тест
уже провален, так что объединение команд с помощью && запускает их поочередно, но останавливается,
как только одна из команд возвращает ошибку – а значит, вам незачем неотлучно дежурить у консоли.
Сопутствующий оператор – ||, означающий «или», то есть при вводе: команда1 || команда2 команда2 сработает только в том случае, если команда1 завершится с ошибкой. Это не очень ценно в интерактивной оболочке,
но часто применяется в скриптах, например: некаякоманда1 || echo «Что-то сломалось!”
- Войдите, чтобы оставлять комментарии