首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Fish别名传递多个参数,访问特定参数

Fish别名传递多个参数,访问特定参数
EN

Stack Overflow用户
提问于 2017-06-15 04:39:38
回答 3查看 2.8K关注 0票数 3

我想在脚本中创建一个别名,用于使用pull-requests创建hub

我正计划创建这样的函数。

代码语言:javascript
复制
# PR 
function pr --description 'hub pr'
    hub pull-request -b $argv[0] -m $argv[1];
end

不过,-m部件可以是可选的。

所以我可以像这样做pr 'branch here' 'message here'

但是我说Array index out of bounds时出错了。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-06-15 17:53:03

代码语言:javascript
复制
function pr -d 'git pull-request' -a branch message
    set -q message[1]
    and set message -m $message
    hub pull-request -b $branch $message
end
票数 6
EN

Stack Overflow用户

发布于 2017-06-16 11:38:07

Fish数组从索引1开始,所以您的$argv[0]在这里是错误的。使用$argv[1]代替它,使用$argv[2]代替当前的$argv[1]

但是,目前除1之外的任何元素都将导致数组索引超出界限的错误,如果您试图访问它,并且没有设置它,那么您需要检查它是否使用set -q argv[2]

代码语言:javascript
复制
# PR 
function pr --description 'hub pr'
    set -l message
    if set -q argv[2]
        set message -m $argv[2]
    end
    hub pull-request -b $argv[1] $message;
end

(此外,https://github.com/fish-shell/fish-shell/issues/826还讨论了删除索引超出范围的错误)

票数 2
EN

Stack Overflow用户

发布于 2017-06-19 07:23:09

还有一种方法可以结合使用test方法和count来检查输入。下面是一个检查大于(gt) 1的示例。

代码语言:javascript
复制
if test (count $argv) -gt 1;
    set r_args $argv[2..-1];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44558668

复制
相关文章

相似问题

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