gpt4 book ai didi

git - 通过 shell 变量将配置选项传递给 git clone

转载 作者:太空狗 更新时间:2023-10-29 14:37:44 25 4
gpt4 key购买 nike

我正在尝试通过 bash 上的环境变量将动态创建的配置选项传递给 git clone

直接传递它们是可行的,但它不能通过 env 变量传递:

$ git clone -c 'url.foo.insteadof=bar' git://git.cweiske.de/psist.git
... all fine

$ export PARAMS="-c 'url.foo.insteadof=bar'"; git clone $PARAMS git://git.cweiske.de/psist.git
error: invalid key: 'url.foo.insteadof

我该怎么做才能让 git 识别这些选项?

最佳答案

那是因为在第一个例子中 quotes是句法的:

$ (set -o xtrace; git clone -c 'url.foo.insteadof=bar' git://invalid) 2>&1 | grep 'git clone'
+ git clone -c url.foo.insteadof=bar git://invalid

而在第二个中,它们是文字:

$ (set -o xtrace; export PARAMS="-c 'url.foo.insteadof=bar'" && git clone $PARAMS git://invalid) 2>&1 | grep 'git clone'
+ git clone -c ''\''url.foo.insteadof=bar'\''' git://invalid

您可以 use arrays to reliably pass arguments using variables :

$ (set -o xtrace; export PARAMS=('-c' 'url.foo.insteadof=bar') && git clone "${PARAMS[@]}" git://invalid) 2>&1 | grep 'git clone'
+ git clone -c url.foo.insteadof=bar git://invalid

关于git - 通过 shell 变量将配置选项传递给 git clone,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31471237/

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