スクリプト: システムにログインしたユーザー数の計算

スクリプト: システムにログインしたユーザー数の計算

次のスクリプトがあります。

#!/bin/bash
#Solution script1

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

user1ログインtty2してログインtty3し、バックグラウンドで。もしそうなら、答えは次のようになります。rootpts/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「並べ替えられたフィールドのみを印刷」を意味します。一緒に見つかったユーザーごとに1行を印刷します。

上記のパイプwc -lを接続すると、行数、つまり一意のユーザー数が印刷されます。これは-uGNU拡張ですが、date -dGNU拡張も使用しているので、ツールのGNUバージョンを使用しているとします。

おすすめ記事