我正在创建一个perl程序,它从.txt文件中获取名称和用户名,并将它们作为用户添加到Linux中。
ex .txt文件格式
ac,Chester Arthur
这是我写的代码。
#!/usr/bin/perl
use strict;
use warnings;
if (@ARGV != 2) {
exit;
};
my $infile = $ARGV[0];
open (FHIN, $infile) or die "Can't open input file.";
chomp (my @lines = <FHIN>);
my %users;
while (my $line = <FHIN>)
{
next if $line =~ /^[A-Z]/g;
chomp($line);
my ($username, $fullname)
= split /\,/, $line;
$users{$username} = $fullname;
}
close(FHIN);
foreach $username(key %users)
{
system("useradd -m $username -g groupname");
}
my $errorfile = $ARGV[1];
open(STDERR, '>', '$errorfile') or die "Can't open log";
答案 0 :(得分:2)
你的代码工作还有很长的路要走,而你似乎在猜测你应该写什么。这不是学好编码的好方法
这将print
每个命令发送到STDOUT。我希望你能够改变它,以便执行命令而不是打印?
perl -aF, -lne 'print "useradd -m $F[0] -g $F[1]"' users.txt
useradd -m ac -g Chester Arthur