Linux: Тихий режим и как заставить команду ждать до конца sh до следующего - PullRequest
0 голосов
/ 07 февраля 2020

Если я выполняю команду, такую ​​как, скажем,

yum install -y -q packageX

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

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

1 Ответ

1 голос
/ 07 февраля 2020

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

В данном конкретном случае c вы уже используете версию yum без звука, поскольку передали ей флаг -q. Документы man для yum, 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 все равно будет выполняться.

...