这是我的第一篇在stackoverflow上的帖子。 :)
我正在尝试使用GetOpt::Long解决此场景。
./myscript -m /abc -m /bcd -t nfs -m /ecd -t nfs ...
-m是挂载点,-t是文件系统类型(可以放置,但不是必需的)。
Getopt::Long::Configure("bundling");
GetOptions('m:s@' => \$mount, 'mountpoint:s@' => \$mount,
't:s@' => \$fstype, 'fstype:s@' => \$fstype)
这不对,我无法匹配正确的挂载点和文件系统类型。
./check_mount.pl -m /abc -m /bcd -t nfs -m /ecd -t nfs
$VAR1 = [
'/abc',
'/bcd',
'/ecd'
];
$VAR1 = [
'nfs',
'nfs'
];
我需要填写未指定的文件系统类型,例如使用"undef"值。 对我来说最好的解决方案是获取哈希表,例如...
%opts;
$opts{'abc'} => 'undef'
$opts{'bcd'} => 'nfs'
$opts{'ecd'} => 'nfs'
可以吗?谢谢。
-m foo -t bar
和-t bar -m foo
是相同的。你也许可以使用 Getopt::Long 来实现这一点,但我认为采用不同的设计会更好。 - ThisSuitIsBlackNot