gpt4 book ai didi

git - 为什么在 git 别名中,$0 可以是调用的程序或第一个位置参数?

转载 作者:太空狗 更新时间:2023-10-29 13:57:41 25 4
gpt4 key购买 nike

当我在 git 别名中使用 $0 时,它有两种不同的行为:

  • 它具有传递的参数值,如果有的话
  • 如果不传参数,则为shell名

例如:

test = "!sh -c 'echo $0'"

$ git test abc # prints `abc`
$ git test # prints `sh`

我知道我可以定义一个函数(并使用 $1),但我想知道这种行为的原因是什么。

我已经 "RTFM" , 但没有任何位置参数的引用。

最佳答案

较少与 Git 相关,更多与 shell 相关,它期望您传递的第一个参数为 $0:

$ sh -c 'echo $0'
sh

$ sh -c 'echo $0' hey
hey

像那样编写测试的正确方法是

test = "!sh -c 'echo $1' sh"

关于git - 为什么在 git 别名中,$0 可以是调用的程序或第一个位置参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57714885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com