Я изучаю интерфейс командной строки Advanced Packaging Tool. Исходя из того, apt(8)
что его стандартный вывод не является терминалом, он не подходит для «сценариев, ожидающих стабильного интерфейса программирования», поэтому я взгляну на него apt-get(8)
.
Одно из различий между apt update
и apt-get update
заключается в том, что в последнем отсутствует последняя строка после обновления всего кэша:
8 packages can be upgraded. Run 'apt list --upgradable' to see them.
Я хочу знать, как я могу отобразить эту точную строку apt-get(8)
.
apt
(Advanced Packaging Tool) иapt-get
это разные вещи. Они предназначены для работы не так, как я понял. Если кто-то дает вам то, что вы хотите, возможно, замените эту команду привычкой.Ответы:
man apt-get
шоу:Так что если вы просто делаете:
apt-get upgrade --dry-run
это выведет:
источник
man 8 apt-get
и нашел этот вариант, но результат отличался отapt
.apt
это действительно программная оболочка,apt-get
и именно поэтому существует предупреждение.apt
покажет8 packages can be upgraded. Run 'apt list --upgradable' to see them.
ваш ответ4 to upgrade, 0 to newly install, 0 to remove and 0 not to upgrade.
apt
не будет гарантировать вам этот текст, и они могут даже не гарантировать вам этот номер.apt-get
однако имеет строгое требование вывода, потому что оно используется другими программами (такими как пользовательские интерфейсы и демоны) для обработки его различными способами. Таким образом, вы можете либо изменить свой код, чтобы принятьapt-get
вывод, либо можете| sed 's/to upgrade/packages can be upgraded/g'
, например, (и рискнуть, что ваш код сломается позже).Предполагая, что вам нужно обработать количество доступных обновлений, вот предложение:
Не нужно sudo
С выходом легко работать
Больше вариантов:
источник
motd
при входе в SSH?От
man 8 apt
:Затем я прошел
/usr/share/doc/apt/examples/configure-index.gz
(используя,zcat(1)
чтобы показать текстовое содержимое) и заметил эту опцию:Поэтому я разработал следующую команду, которая сделала именно то, что я хотел:
Проверено, чтобы работать на Xenial и Bionic.
источник