1

我知道boost::program_optionsc++ 让我几乎可以立即编写用户友好的命令行选项。对于“用户友好”,我的意思是,短选项和长选项以及类似于此的描述性帮助命令:

Copy standard input to each FILE, and also to standard output.

  -a, --append              append to the given FILEs, do not overwrite
  -i, --ignore-interrupts   ignore interrupt signals
      --help     display this help and exit
      --version  output version information and exit

对我自己来说,我不得不发现这在 bash 中真的很尴尬,内置的getopts只支持短选项。这是正确的还是我错了?

您将如何实现用户友好的命令行选项?如果您知道任何链接、最佳实践或深度教程,我将不胜感激。

4

2 回答 2

1

GNU getopt 支持长选项,并且可以从任何 Bourne-like 或 csh-like shell 中使用。ksh93 的内置 getopts 也支持长选项。zsh 有一个 zparseopts。

在http://stchaz.free.fr/getopts_long.sh有一个 getopts 的 POSIX shell 实现(作为一个 shell 函数),它支持长选项

于 2012-08-30T09:39:25.093 回答
0

感谢您向我指出正确的信息来源。

我决定这样做https://github.com/Mythli/tech/blob/master/bash/getopt.sh 代码非常简单,所以不需要解释。

于 2012-09-12T17:32:04.033 回答