Docopt不设置默认值

时间:2013-12-20 02:36:08

标签: bash docopt

我有一个使用docopts的bash脚本。它在我的Debian机器上运行得很漂亮,但无法在我的Ubuntu笔记本电脑上设置默认值。这是docopts代码:

eval "$(docopts -A args -V - -h - : "$@" <<EOF
Usage: cmus_select.sh [--list <tag>] [--random] [--structure=</alt/dir/structure>] [--dir=/path/to/music]

  -h --help                Show help
  -r --random              Randomize selection instead of using a dmenu
  -l --list TAG            List music by tag.  Unless you use -s, genre, artist, album, and song are expected. [default: song]
  -s --structure STRUCT    Directory structure for your music.  [default: genre/artist/album/song]
  -d --dir DIR             Location of music [default: $HOME/Music/]
----
cmus_select.sh 0.0.1
EOF
)"
  • 我找到了两个空格要求并且已经检查过(不确定stackoverflow格式是否会占用空格。)
  • 两台机器都使用docopts 0.6.1 + fix。 debian机器使用bash 4.2.37和python 2.7.3。 ubuntu机器在4.2.45和2.7.5+上。
  • 我尝试了多种方式来描述这些选项。 -l / - 列表的不同顺序。 =选项与其变量之间的符号。角括号中的Var名称。等等。它可以在debian中运行,而不是在Ubuntu中运行。

- 跟进 -

我在debian测试机器上遇到了同样的问题。 Docopts正在寻找新的维护者,所以我放弃了。作为替代方案,我写了https://raw.github.com/sagotsky/.dotfiles/612fe9e5c4aa7e1fae268810b24f8f80960a6d66/scripts/argh.sh,它比docopts小,但做了我需要的。

0 个答案:

没有答案