如何使用 GetOptions 实用程序来处理“可选” Perl 中的命令行参数?
有许多 Perl 教程解释如何使用 GetOptions 实用程序仅处理预期的命令行参数,否则退出并显示适当的消息。
在我的要求中,我有以下可选的命令行参数,例如
- -z zip_dir_path :压缩输出
- -h :显示帮助。
我尝试了一些与 GetOptions 的组合,但对我来说不起作用。
所以我的问题是:如何使用 GetOptions 来处理这个需求?
编辑:-z 需要“zip 目录路径”
编辑2: 我的脚本具有以下强制命令行参数:
- -in input_dir_path :输入目录
- -out output_dir_path :输出目录
这是我的代码:
my %args;
GetOptions(\%args,
"in=s",
"out=s"
) or die &usage();
die "Missing -in!" unless $args{in};
die "Missing -out!" unless $args{out};
希望此编辑增加更多清晰度。
There are many Perl tutorials explaining how to use GetOptions utility to process only the command-line arguments which are expected, else exit with an appropriate message.
In my requirement I have following optional command-line arguments, like,
- -z zip_dir_path : zip the output
- -h : show help.
I tried few combinations with GetOptions which did not work for me.
So my question is: How to use GetOptions to handle this requirement?
EDIT: -z needs 'zip directory path'
EDIT2:
My script has following compulsory command-line arguments:
- -in input_dir_path : Input directory
- -out output_dir_path : Output directory
Here's my code:
my %args;
GetOptions(\%args,
"in=s",
"out=s"
) or die &usage();
die "Missing -in!" unless $args{in};
die "Missing -out!" unless $args{out};
Hope this EDIT adds more clarity.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
A
:
(冒号) 可以是用于指示可选选项:A
:
(colon) can be used to indicate optional options:从文档中:
如果您指定并检查空字符串,您就知道用户未指定哪些字符串。
From the documentation:
If you specify that and check for the empty string, you know which ones the user did not specify.
应根据您获得的输入参数将
$zip_output
和$show_help
的值设置为1
或0
在命令行中。This should set to
1
or0
the values of$zip_output
and$show_help
based on what input arguments you get in command line.