Solusi 1:
Pertama, pertimbangkan arti peringatan yang ingin Anda sembunyikan. Secara teori, apt
dapat berubah besok untuk memanggil mereka "distribusi" daripada "paket" (karena "belum memiliki antarmuka CLI yang stabil") dan ini akan benar-benar merusak pipa Anda. Perubahan yang lebih mungkin terjadi adalah perubahan yang menggunakan kata "paket" di banyak tempat, yang menyebabkan pipeline Anda menampilkan informasi asing, bukan hanya jumlah paket yang Anda cari.
Tapi Anda mungkin tidak terlalu khawatir tentang itu, dan, secara realistis, tidak ada alasan mengapa Anda harus begitu. Antarmukanya telah stabil selama bertahun-tahun dan mungkin tidak akan berubah dalam waktu dekat. Jadi, bagaimana cara menghilangkan peringatan itu?
Di dunia *nix, output ke baris perintah umumnya terdiri dari dua rasa, stdout (output standar) dan stderr (kesalahan standar). Program berperilaku baik mengirimkan keluaran normalnya ke stdout dan peringatan atau pesan kesalahan apa pun ke stderr. Jadi, jika Anda ingin kesalahan/peringatan hilang, Anda biasanya dapat melakukannya dengan membuang semua pesan di stderr menggunakan redirection keluaran 2>/dev/null
. (Dalam bahasa Inggris, itu adalah "redirect (>
) saluran keluaran kedua (2
, yaitu stderr) ke /dev/null
(yang hanya membuang semua yang dikirim ke sana)".
Maka, jawabannya adalah:
$ sudo apt update 2>/dev/null | grep packages | cut -d '.' -f 1
4 packages can be upgraded
Catatan tambahan:Dalam pertanyaan, perintah Anda ditampilkan sebagai # sudo apt...
. #
shell prompt menyiratkan bahwa Anda mungkin masuk sebagai root saat menggunakan perintah itu. Jika Anda sudah melakukan root, Anda tidak perlu menggunakan sudo
.
Lebih lanjut tentang peringatan yang ingin Anda abaikan (dari man apt
):
SCRIPT USAGE
The apt(8) commandline is designed as a end-user tool and it may change
the output between versions. While it tries to not break backward
compatibility there is no guarantee for it either. All features of
apt(8) are available in apt-cache(8) and apt-get(8) via APT options.
Please prefer using these commands in your scripts.
Solusi 2:
Anda dapat menggunakan alternatif dengan perintah berikut
sudo apt-get -s upgrade | grep -P "\d\K upgraded"
Outputnya harus seperti ini
6 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
-s
berarti simulasi, pengintaian, atau uji coba
dari apt-get
halaman manual
-s, --simulate, --just-print, --dry-run, --recon, --no-act
No action; perform a simulation of events that would occur based on
the current system state but do not actually change the system.
Locking will be disabled (Debug::NoLocking) so the system state
could change while apt-get is running. Simulations can also be
executed by non-root users which might not have read access to all
apt configuration distorting the simulation. A notice expressing
this warning is also shown by default for non-root users
(APT::Get::Show-User-Simulation-Note). Configuration Item:
APT::Get::Simulate.
Jawaban ini terinspirasi oleh blog ini