我有这个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
传递完毕,一切正常。
答案 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
的值。