Apenas analise a saída de who
:
#!/usr/bin/env bash
num=$(who | sort -uk1,1 | wc -l)
date +"Today %d %B, there are $num users logged in onto the system"
Explicação
sort -uk1,1
: o -k1,1
significa "classificar no 1º campo e somente no primeiro campo". O -u
significa "imprimir apenas os campos de classificação exclusivos". Juntos, eles imprimirão uma linha para cada usuário encontrado.
O piping acima para wc -l
imprimirá o número de linhas, que é o número de usuários únicos. Note que -u
é uma extensão GNU, mas como você está usando date -d
, que também é GNU, presumo que você esteja usando as versões GNU das ferramentas.