web-dev-qa-db-ja.com

更新/アップグレードがない場合に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
Ben

あなたはおそらく次のようなことをすることができます:

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
muru

次の行を変更できます。

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

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

これでうまくいきます。

1
Videonauth