如何将输入标记传递给zsh别名

时间:2015-12-19 06:35:10

标签: linux shell unix zsh

我有这个zsh别名:

alias ogf="source <(clone_git_file -ts $1)"

clone_git_file -ts返回一个可以在shell中执行的字符串。使用source <(...)可以很好地工作(执行我当前shell中的代码),但是我无法将$1令牌传递给嵌套命令。

顺便说一句,我发现source的使用率高于here

如何正确传递令牌?如果我从别名中删除source <(并执行此操作:

source <(ogf my_url)

my_url传递完毕,一切正常。

1 个答案:

答案 0 :(得分:1)

别名不接受争论。定义别名时会展开$1。您想要使用函数。

ogf () {
    source <(clone_git_file -ts "$1")
}

这也不仅仅是阻止$1立即扩展的问题;如果你试过

alias ogf='source <(clone_git_file -ts $1)'

然后ogf foo会扩展为ogf $1 foo$1会扩展为当前shell $1的值。