Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Проверка существовния вводимого пользователя.


Автор: RedOk 19.3.2008, 04:34
Необхоимо написать скрипт добавления нового пользователя в систему(FreeBSD).
Как проверить нет ли уже в системе такого пользователя???

Автор: BurnerCode 19.3.2008, 09:39
а разве тебе pw даст добавить уже существующего пользователя или sysinstall ?
Или я может не о том?

Код

#!/usr/bin/perl
use strict;
use warnings;
use FileHandle;

# проверить существования пользователя

unless($ARGV[0])
{
    print "usage: $0 <username>\n";
    exit
}

my $st  = 0;
my $fh  = new FileHandle;

if($fh->open('< /etc/passwd'))
{
    while(<$fh>)
    {
        if(m/^(\w+)\:.*/) { $st = 1 if $ARGV[0] eq $1 }
    }
} else {
    print "Can't open file\n";
    exit
}

$st ? print "user \"$ARGV[0]\" exists\n" : print "user \"$ARGV[0]\" not exists"

Автор: sir_nuf_nuf 19.3.2008, 10:35
Товарищи, пишите на perl.. 

Код

#!/usr/bin/perl

sub is_user
{
    open my $passwd, '</etc/passwd';
    return scalar grep /^$_[0]:/o, <$passwd>;
}

print is_user $ARGV[0];


а если вам нравится куча if / else - тогда не пишите на perl. выберите java =)

Автор: BurnerCode 19.3.2008, 10:52
sir_nuf_nuf  симпатично =) но с прагмой warnings ерроры.
А если файла не будет? ну или пирмишены не позволят? а челу хоть как то нада сообщеть об этом?! =)
Но серавно тебе +1 - прикольное решение =)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)