首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是fish shell命令行ui模式?

什么是fish shell命令行ui模式?
EN

Stack Overflow用户
提问于 2014-03-29 23:02:57
回答 1查看 120关注 0票数 0

我想构建一个类似于git的git <command> [<param1> ...]的ui。到目前为止,我想到的是:

代码语言:javascript
复制
function git -d "Description"
    switch $argv[1]
        case branch
            git_branch $argv[2]
        case reset
            git_reset
    end
end

function git_branch -d "Description for branch"
    do_something $argv[1]
end

function git_reset -d "Description for reset"
    do_something_else
end

它是有效的,但有几个问题:

  1. Fish没有为auto-completion;
  2. If提取可用的命令我运行git时没有参数它不会打印出命令列表,也不会提取它们的描述。

在我看来,我所做的并不是使用fish构建命令行实用程序的“正确”方法。那么,什么是正确的方式呢?

EN

回答 1

Stack Overflow用户

发布于 2014-04-02 21:43:01

您的问题可能是因为您的switch语句没有默认的分支,所以您从未调用过实际的git命令。尝试:

代码语言:javascript
复制
function git -d "Description"
    switch $argv[1]
        case branch
            git_branch $argv[2]
        case reset
            git_reset
        case '*'
            command git $argv
    end
end

为了防止出现零参数的情况,我这样做:

代码语言:javascript
复制
function git -d "Description"
    set -q argv[1]
    and switch $argv[1]
        case branch
            git_branch $argv[2]
            return
        case reset
            git_reset
            return
    end
    command git $argv
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22732714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档