다음 스크립트가 있습니다.
#!/bin/bash
#Solution script1
who
date +"Today %d %B, there are $# users logged in onto the system"
user1
로그인 tty2
하고 로그인 tty3
하고 백그라운드 에서 . 그렇다면 대답은 다음과 같아야합니다.root
pts/0
tty1
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 버전을 사용하고 있다고 가정합니다.