Моя обычная команда для того, чтобы усовершенствовать машину является довольно подробной, и она может привести больше чем к одной подсказке пароля, если какая-либо команда занимает много времени:
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'
Попробуйте
sudo sh -c "apt-get -y update;apt-get -y dist-upgrade;apt-get -y autoremove;apt-get -y autoclean"
Оператор '&&' можно использовать для выполнения команды '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 не завершился ошибкой).