Как удалить сегмент MOTD когда никакие обновления/обновления?

Когда я вхожу в систему терминального/через SSH, я вижу это сообщение, где x много обновлений:

x packages can be updated.
x updates are security updates.

Однако, если бы число обоим 0, я предпочел бы не видеть сообщение.

Я попытался изменить файлы MOTD, но от того, что я вижу, что могу или позволить им показывать, или скрывать их, но ничто условное выражение. Содержание 90-updates-available файл:

#!/bin/sh

stamp="/var/lib/update-notifier/updates-available"

[ ! -r "$stamp" ] || cat "$stamp"

... и содержание /var/lib/update-notifier/updates-available :

0 packages can be updated.
0 updates are security updates.

Как я могу изменить 90-updates-available регистрируют для предотвращения показа сообщение, если оба сообщения запускают с 0?

1
задан 23 May 2016 в 16:20

3 ответа

Можно, вероятно, сделать что-то как:

if [ -r "$stamp" ] 
then
    awk '{c += $1; out = out "\n" $0} END {if (c != 0) print out}' /var/lib/update-notifier/updates-available
fi

Это просто берет сумму первого поля и печатает файл, если сумма является ненулевой.

5
ответ дан 3 December 2019 в 06:31

Можно изменить строку:

[ ! -r "$stamp" ] || cat "$stamp"

кому:

([ ! -r "$stamp" ] || [ -n "$(awk '/^0/{print $1;}' "$stamp")" ]) || cat "$stamp"

Это сделает это.

1
ответ дан 3 December 2019 в 06:31

Вот вариант использования sed вместо awk, который подавляет любую строку, начинающуюся со счетчика 0, и объединяет как регулярные обновления, так и строки обновлений безопасности, если у обоих есть счетчики:

[ ! -r "$stamp" ] || sed -e '/^0 /d' -e 'N; s/\n0 .*//; s/\n/ /' -- "$stamp"
0
ответ дан 28 December 2020 в 04:26

Другие вопросы по тегам:

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