Bash 一行统计 Arch Linux 待更新包的数量。

检查系统更新#

Arch Linux 的 community/pacman-contrib 包里有个小工具 checkupdates,可以检测当前软件源里待更新的包。 用 wc -l 计数,就可以统计待更新的软件包数量。

1
checkupdates | wc -l

检查 AUR 更新#

但是作为一个 Arch 用户,怎么可能不适用 AUR 呢。统计更新数量的时候需要同时统计 AUR 中待更新的软件包数量。 根据使用的 AUR Helper 不同,这可以通过 yay -Qua 或者 paru -Qua 实现。

1
paru -Qua | wc -l

合并统计#

方法一#

最后,我需要把两个统计数据合并在一起。第一种方法是利用类似 echo $(( 1 + 2 )) 的形式进行计算。

1
echo $(( $(checkupdates | wc -l) + $(paru -Qua | wc -l) ))

方法二#

第二种方法是利用 subshell 。用类似 (echo 1; echo 2) 的形式吧两个命令的输出合并在一起。

1
(checkupdates; paru -Qua) | wc -l

第二种利用 subshell 的方法比较简洁,最后用的这种方法。