5

将来的にこれをサポートするためにいくつかの作業が進行中のようです:

https://github.com/fish-shell/fish-shell/issues/478
https://github.com/xiaq/fish-shell/tree/opt-parse

しかし、それまでの間、これに対処するための推奨される方法は何ですか? $argv を解析するだけでよいのでしょうか? もしそうなら、いくつかのヒント/ベストプラクティスはありますか?

4

3 に答える 3

3

あなたはこれを行うことができます:

for item in $argv
    switch "$item"
        case -f --foo
        case -b --bar
    end
end

上記は、単一の引数-fbz、オプション値--foo=baz--foo bazまたはf baz、負の代入--name!=value、オプションの終わり、--およびダッシュ-での短いオプションの記述をサポートしておらず--、常に引数の一部です。

これらの問題に対処するために、getopts関数を作成しました。

getopts -ab1 --foo=bar baz

次に、出力を見てください。

a
b    1
foo  bar
_    baz

左側の項目は、CLI に関連付けられたオプション フラグまたはキーを表します。右側の項目はオプションです。アンダースコア_文字は、キーのない引数のデフォルトのキーです。

read(1)生成されたストリームを処理し、switch(1)パターンを照合するために使用します。

getopts -ab1 --foo=bar baz | while read -l key option
    switch $key
        case _
        case a
        case b
        case foo
    end
end

ドキュメントを参照してください。

于 2015-01-26T12:10:15.407 に答える