Linux: тихий режим и как заставить команду ждать завершения перед следующим

Linux: тихий режим и как заставить команду ждать завершения перед следующим

07.02.2020 11:52:59 Просмотров 11 Источник

Если я выполню такую команду, как сказать

yum install -y -q packageX

Как я могу гарантировать, что он ждет завершения перед выполнением следующей команды?

Моя цель состоит в том, чтобы иметь как можно меньше ненужных выходных данных, но выполнять каждую команду последовательно с каждым завершением

У вопроса есть решение - Посмотреть?

Ответы - Linux: тихий режим и как заставить команду ждать завершения перед следующим / Linux: Quiet mode and how to make command wait to finish before next

tsujp

07.02.2020 11:55:38

Команды Linux, как правило, уже молчат, если нет проблем, таким образом, вам нужно только обратить внимание, если требуется обратить внимание. У некоторых команд есть опции, чтобы заставить замолчать их полезный и не вызывающий проблем вывод, использовать man COMMAND_NAMEдля этого или проверить TL; DR страницы здесь, которые похожи man, но дружелюбны для начинающих: https://tldr.sh/

Для вашего конкретного случая здесь вы уже используете беззвучную версию yum, поскольку вы передали ей флаг-q. Человек документы для ням, man yum или онлайн (http://man7.org/linux/man-pages/man8/yum.8.html) что государство -q

-q, --quiet
          Run without output.

Что касается команд:

Используйте &&для цепочки команд, где успех (в частности, если команда возвращает 0, что часто приписывается успеху) предыдущей команды требуется для выполнения следующей.

Вот вам пример:

cd ./foo && ls

Это переводится как: попытка изменить каталог в папку fooв текущем каталоге, если-и-только-если это удастся (возвращает 0) выполнить ls. Если fooне существует или он иначе не может изменить каталог в foo, то lsне будет работать.

В вашем случае, если вы хотите выполнить команду только в том случае, если этот пакет успешно установлен, вы сделаете следующее, Где ls-команда, которая, возможно, более интересна в этом случае.

yum install -y -q packageX && ls

Просто для полноты, поскольку разговоры о &&часто приводят к ;, если вам все равно, успешно ли завершается последняя команда (возвращает 0) и просто хотите использовать команды цепочки ;вместо этого.

cd ./foo; ls

Теперь даже если cd ./fooтерпит lsвсе равно будет выполняться.

https://stackoverflow.com/questions/60110026/linux-quiet-mode-and-how-to-make-command-wait-to-finish-before-next/60110065#comment106314946_60110065
Для полноты картины можно добавить еще несколько слов о cd ./foo || ls :)
Закрыть X