如果在命令行中没有输入参数则显示错误
Display error if no arguments are typed in command line
我需要编写一个程序来读取 Linux 中的 passwd 文件。用户输入程序的名称和想要的用户名,然后程序打印出相应的userID和homeDir。如果未提供用户名或输入了多个用户,程序将显示一条错误消息。
Good ex)
User types:
lookupUser.pl jdoe123
Result:
UID: 123456
HomeDir: /home/jdoe123
Bad ex)
User types:
lookupUser.pl
Result:
Enter one, and only one username.
Bad ex)
User types:
lookupUser.pl jdoes123 ssanta456
Result:
Enter one, and only one username.
在某些时候,我已经完成了所有工作,但我开始清理代码,现在当我不输入用户名时出现错误“Use of uninitialized value $user in scalar chomp at ./lookupUser.pl line 6.
”。
非常感谢任何帮助。
#!/usr/bin/perl
use strict;
use warnings FATAL => 'all';
my $user = $ARGV[0];
chomp ($user);
if ($#ARGV == -1 || $#ARGV >= 1){
print "Enter one, and only one username.\n";
}
elsif (getpwnam("$user")) {
(my $name, my $passwd, my $uid, my $gid, my $quota, my $comment,
my $gcos, my $dir, my $shell) = getpwnam $user;
#print "Name = $name\n";
#print "Password = $passwd\n";
print "UID = $uid\n";
#print "GID = $gid\n";
#print "Quota = $quota\n";
#print "Comment = $comment\n";
#print "Gcos = $gcos\n";
print "HOME DIR = $dir\n";
#print "Shell = $shell\n";
}
else {
print "Username $user does not exist.\n";
}
仅当恰好有 1 个参数传递给程序时,才检查用户名。
use strict;
use warnings FATAL => 'all';
if (@ARGV == 1 ) {
my $user = $ARGV[0];
chomp ($user);
if (getpwnam("$user")) {
(my $name, my $passwd, my $uid, my $gid, my $quota, my $comment,
my $gcos, my $dir, my $shell) = getpwnam $user;
print "UID = $uid\n";
print "HOME DIR = $dir\n";
}
else {
print "Username $user does not exist.\n";
}
}
else {
print "Enter one, and only one username.\n";
}
我需要编写一个程序来读取 Linux 中的 passwd 文件。用户输入程序的名称和想要的用户名,然后程序打印出相应的userID和homeDir。如果未提供用户名或输入了多个用户,程序将显示一条错误消息。
Good ex)
User types:
lookupUser.pl jdoe123
Result:
UID: 123456
HomeDir: /home/jdoe123
Bad ex)
User types:
lookupUser.pl
Result:
Enter one, and only one username.
Bad ex)
User types:
lookupUser.pl jdoes123 ssanta456
Result:
Enter one, and only one username.
在某些时候,我已经完成了所有工作,但我开始清理代码,现在当我不输入用户名时出现错误“Use of uninitialized value $user in scalar chomp at ./lookupUser.pl line 6.
”。
非常感谢任何帮助。
#!/usr/bin/perl
use strict;
use warnings FATAL => 'all';
my $user = $ARGV[0];
chomp ($user);
if ($#ARGV == -1 || $#ARGV >= 1){
print "Enter one, and only one username.\n";
}
elsif (getpwnam("$user")) {
(my $name, my $passwd, my $uid, my $gid, my $quota, my $comment,
my $gcos, my $dir, my $shell) = getpwnam $user;
#print "Name = $name\n";
#print "Password = $passwd\n";
print "UID = $uid\n";
#print "GID = $gid\n";
#print "Quota = $quota\n";
#print "Comment = $comment\n";
#print "Gcos = $gcos\n";
print "HOME DIR = $dir\n";
#print "Shell = $shell\n";
}
else {
print "Username $user does not exist.\n";
}
仅当恰好有 1 个参数传递给程序时,才检查用户名。
use strict;
use warnings FATAL => 'all';
if (@ARGV == 1 ) {
my $user = $ARGV[0];
chomp ($user);
if (getpwnam("$user")) {
(my $name, my $passwd, my $uid, my $gid, my $quota, my $comment,
my $gcos, my $dir, my $shell) = getpwnam $user;
print "UID = $uid\n";
print "HOME DIR = $dir\n";
}
else {
print "Username $user does not exist.\n";
}
}
else {
print "Enter one, and only one username.\n";
}