склонный - получают обновление, dist-обновление, автоудаляют, авточистый в единственной команде sudo

Моя обычная команда для того, чтобы усовершенствовать машину является довольно подробной, и она может привести больше чем к одной подсказке пароля, если какая-либо команда занимает много времени:

sudo apt-get update && sudo apt-get dist-upgrade && sudo apt-get autoremove && sudo apt-get autoclean

Я хотел бы сократить это вниз к одной команде (предпочтительно, не используя глобальный псевдоним).

Решение на основе ответа @amra и другой подсказки:

sudo sh -c 'apt-get update && apt-get upgrade --yes && if [ -f /var/run/reboot-required ]; then echo You should reboot; fi' 

11
задан Community 23 May 2017 в 11:54
поделиться

2 ответа

Попробуйте

sudo sh -c "apt-get -y update;apt-get -y dist-upgrade;apt-get -y autoremove;apt-get -y autoclean"
20
ответ дан 3 December 2019 в 05:33
поделиться

Оператор '&&' можно использовать для выполнения команды 'cmd2' тогда и только тогда, когда 'cmd1' был выполнен без ошибок:

(cmd1 && cmd2)

Но это работает только в bash напрямую, без ' sudo 'впереди.

Итак, чтобы работать должным образом, мы можем использовать следующую команду:

sudo /bin/sh -c "apt-get update && apt-get dist-upgrade && apt-get autoremove && apt-get autoclean"

Обратите внимание, что ответ, предложенный amra, не совпадает с приведенной выше командой: Команды, разделенные знаком ";" выполняются последовательно без учета кода выхода предыдущей команды. При использовании «&&» для разделения команд учитывается код выхода. Таким образом, если у нас есть «cmd1 && cmd2», cmd2 выполняется только в том случае, если код выхода cmd1 был 0 (т.е. cmd1 не завершился ошибкой).

1
ответ дан 3 December 2019 в 05:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: