2

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
)"
  • 私は2つのスペース要件を見つけ、すでにそれをチェックしました(stackoverflowフォーマットがスペースを消費するかどうかはわかりません.)
  • どちらのマシンも docopts 0.6.1+fix を使用しています。debian マシンは bash 4.2.37 と python 2.7.3 を使用します。ubuntu マシンは 4.2.45 および 2.7.5 以降です。
  • オプションを説明するためにさまざまな方法を試しました。-l/--list の順序が異なります。オプションとその変数の間の = 記号。山括弧内の変数名。など。Ubuntuではなく、debianで確実に動作します。

- ファローアップ -

Debian テスト マシンで同じ問題が発生しました。Docopts は新しいメンテナを探しているので、断念しました。別の方法として、 https: //raw.github.com/sagotsky/.dotfiles/612fe9e5c4aa7e1fae268810b24f8f80960a6d66/scripts/argh.shを書きました。これは docopts よりも小さいですが、必要なことは実行します。

4

0 に答える 0