0
我想將ARGV的使用集成到我的腳本中。經過我在Stack Overflow上找到的一個簡單用法的例子後,我能夠使腳本「強制」使用單個命令參數。我現在想要的是允許多個標誌而不是一個標誌。如果存在多個使用標誌,則標誌需要以特定的順序執行。如何在指定標誌的特定順序時將命令行標誌與ARGV一起傳遞?
這是我爲了完成單個參數而執行的代碼。
#!/usr/bin/perl
use strict;
use warnings;
system ("clear");
print "Solignis's Discovery Script v0.6 for ESX\\ESX(i) 4.0+\n\n";
my $numargs = $#ARGV + 1;
if ($#ARGV < 0) {
help_menu();
}
foreach my $argval (0 .. $#ARGV) {
if (($#ARGV == 0) && ($ARGV[0] eq '-b')) {
print "Backup\n";
} elsif (($#ARGV == 0) && ($ARGV[0] eq '-d')) {
print "Discovery\n";
} elsif ((($#ARGV == 0) && ($ARGV[0] eq '-h') || ($#ARGV == 0) && ($ARGV[0] eq '-?'))) {
help_menu();
} elsif (($#ARGV == 0) && ($ARGV[0] eq '-s')) {
print "Setup\n"
}
}
if ($#ARGV >= 1) {
print "Too many arguments, only one argument may be passed at a time!\n";
}
sub help_menu {
print "Options:\n\n";
print "\t-b\tRun Backup Backup\n";
print "\t-d\tRun Discovery Script\n";
print "\t-h\tShow Help Menu\n";
print "\t-s\tRun Setup Script\n\n";
}
爲什麼他們必須按照特定的順序? – 2011-01-20 00:33:07
因爲我不希望有人在'-s'(設置)之前嘗試運行'-b'(備份),因爲腳本會脫軌 – ianc1215 2011-01-20 00:38:59