這裏用戶使用Linux命令是代碼:Perl中,存儲在哈希
#!/usr/bin/perl
use warnings;
use strict;
use utf8;
my @temparray;
my $count = 0;
my @lastarray;
my $lastbash;
#Opens the file /etc/shadow and puts the users with an uid over 1000 but less that 65000 into an array.
open(my $passwd, "<", "/etc/passwd") or die "/etc/passwd failed to open.\n";
while (my $lines = <$passwd>) {
my @splitarray = split(/\:/, $lines);
if($splitarray[2] >= 1000 && $splitarray[2] < 65000) {
$temparray[$count] =$splitarray[0];
print "$temparray[$count]\n";
$count++;
}
}
close $passwd;
foreach (@temparray) {
$lastbash = qx(last $temparray);
print "$lastbash\n";
}
我想要做的就是使用內置的Linux命令「最後」的所有存儲在用戶@ temparray。我想輸出是這樣的:
用戶1:10
用戶2:22
其中22和10被他們登錄的次數,我怎樣才能做到這一點? 我嘗試了幾種不同的方法,但我總是以錯誤結束。
在'$ lastbash'中用'$ _'更改'$ temparray'。你的問題只是爲了解釋'last'命令的輸出嗎? – bolav
@bolav非常感謝!這非常出色。 – nillenilsson