【问题标题】:Parsing the Perl script command(s) and get the ARGV解析 Perl 脚本命令并获取 ARGV
【发布时间】:2020-04-16 12:12:32
【问题描述】:

我有大约 100 个不同的脚本,命令如下所示

  1. perl scriptone.pl --option1 PRODUCTION 100
  2. perl scripttwo.pl --option1 UAT 101
  3. perl scriptthree.pl --option1 TESTING 102

我需要在不执行 perl 脚本的情况下获取上述所有脚本的 ARGV (PRODUCTION,100 for 1, UAT,101 for 2)。

有没有办法使用 SHELL 脚本或使用任何其他 perl 选项来获取 ARGV?

【问题讨论】:

  • 你需要帮助解析shell命令,你甚至没有指定哪个shell?
  • 你的问题不清楚。您是否需要 获取 perl 脚本本身的参数而不执行它?或者您有一些按顺序运行此命令的 shell 脚本,并且您想从该 shell 脚本中提取这些参数?
  • @PolarBear 是的,我需要在不执行的情况下获取给定 perl 脚本的参数。即给定一个 perl 脚本,在没有实际执行的情况下获取脚本的 ARGV(perl scriptone.pl --option1 PRODUCTION 100,如果我给出这个,它应该返回 argv 作为 PRODUCTION,100)
  • @Anonymous 所以你对执行scriptone.pl不感兴趣?您只需解析 string: "perl scriptone.pl --option1 PRODUCTION 100" 以提取子模式 --option1 之后的文本?

标签: perl parsing command argv


【解决方案1】:

对于类似于您发布的特定 shell 命令的命令,您可以从以下开始:

@ARGV = split ' ', $cmd;
splice @ARGV, 0, 2;

从那里,您可以使用与scriptone.pl 相同的代码从@ARGV 中提取值。

【讨论】:

  • 问题是有时命令会像'perl scriptone.pl PROD 101 --option1 --option2 232'
  • 更新了我的答案。 (我不会猜测scriptone.pl 是如何从@ARGV 中提取所需值的,因为它显然接受了不寻常的模式。)
猜你喜欢
  • 1970-01-01
  • 2012-10-26
  • 1970-01-01
  • 2012-06-26
  • 1970-01-01
  • 2011-08-15
  • 1970-01-01
  • 2014-12-07
  • 1970-01-01
相关资源
最近更新 更多