linux - Perl:如何在 Linux 中从 .txt 文件添加用户

标签 linux perl

我正在制作一个 Perl 程序,它从 .txt 文件中获取姓名和用户名,并将它们添加为 Linux 中的用户。

.txt 文件格式的 ex

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";

最佳答案

距离让代码正常工作还有很长的路要走,而且您似乎在猜测应该写什么。这不是学习良好编码的好方法

这会将每个命令打印到STDOUT。我希望您能够更改它,以便执行命令而不是打印命令?

perl -aF, -lne 'print "useradd -m $F[0] -g $F[1]"' users.txt

输出

useradd -m ac -g Chester Arthur

关于linux - Perl:如何在 Linux 中从 .txt 文件添加用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35705807/

相关文章:

linux - nginx: [emerg] 未知指令 ""在/etc/nginx/sites-enabled/example.com:3

linux - ksh 将命令结果存储到变量

linux - 如果它死了如何重新运行进程 - Linux

Perl 不继承基本方法

perl - 在 Perl 中对巨大的哈希进行排序

Linux内核错误?创建新套接字默认为非阻塞

linux - awk CR LF 处理是否在 cygwin 上中断?

regex - 如何从 Perl 中的字符串中删除最后一个逗号

performance - 为什么我的程序使用 Tie::File 运行得这么慢?

perl - 如何在 Perl 中关闭和重新打开 STDOUT?