Benutzer anzeigen, die sich angemeldet und abgemeldet haben

Benutzer anzeigen, die sich angemeldet und abgemeldet haben

Meine Aufgabe:

Schreiben Sie ein Programm, das nach einer bestimmten Zeitspanne Informationen über die Benutzer im System ausgibt: Wer ist eingetreten, wer hat es verlassen.

Ich habe versucht, es anders zu machen, indem ich zwei Dateien verglichen habe. Ich weiß nicht, wie gut ich das mache. commist hier nicht sehr gut, ich weiß. Ich habe versucht, zu verwenden diff, aber ihre Ausgabe auf der Konsole ist für mich unverständlich, und als ich versuchte diff -q, bekam ich nur diese ZeileFiles 1.txt and 2.txt differ

Bitte hilf mir.

#!/bin/bash
while (true) do
who > 1.txt
sleep 10s
who > 2.txt
(comm -13 1.txt 2.txt) > 3.txt
(comm -23 2.txt 1.txt) > 4.txt
echo IN :
cat 3.txt 
echo OUT :
sleep 10s
cat 4.txt 
echo [______________________________________________________________]
done

upd: oder besser so... keine Ahnung

#!/bin/bash
while (true) do
who > 1.txt
sleep 10s
who > 2.txt
(comm -13 1.txt 2.txt) > 3.txt
echo IN :
cat 3.txt 
echo OUT :
sleep 10s
who > 2.txt
(comm -23 3.txt 2.txt) > 4.txt
cat 4.txt 
echo [______________________________________________________________]
done

Antwort1

#!/bin/bash
who >1.txt
sleep 10
who >2.txt
awk 'NR==FNR{a[$1];next}!($1 in a){print $1}' 1.txt 2.txt >3.txt

awk 'BEGIN{print "Below are the New users logged in now "}{print $0}' 3.txt

echo "=========================="

awk 'NR ==FNR {a[$1];next}!($1 in a){print $1}' 2.txt 1.txt > 4.txt


awk 'BEGIN{print "Below are the user who logged out now"}{print $0}' 4.txt

verwandte Informationen