脚本:计算登录系统的用户数

脚本:计算登录系统的用户数

我有以下脚本。

#!/bin/bash
#Solution script1

who
date +"Today %d %B, there are $# users logged in onto the system"

在后台user1已登录tty2tty3root已登录pts/0tty1。那么答案应该是

今天10月22日,有2个用户登录系统。

答案1

只需解析以下输出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"

解释

sort -uk1,1-k1,1意思是“在第一个字段上排序并且仅有的在第一个字段上”。这-u意味着“仅打印唯一的排序字段”。它们一起将为找到的每个用户打印一行。

将上面的内容通过管道连接wc -l将打印行数,即唯一用户的数量。请注意,这-u是一个 GNU 扩展,但由于您使用的date -d也是 GNU 扩展,因此我假设您正在使用该工具的 GNU 版本。

相关内容