gpt4 book ai didi

docker - fish shell 通过命令传递参数

转载 作者:行者123 更新时间:2023-12-02 18:17:18 27 4
gpt4 key购买 nike

我正在尝试将带docker machine的fish与docker client一起使用在fish shell中。我可以运行docker-machine config dev,它将为我提供传递给docker的参数。但是,当我尝试执行docker (docker-machine config dev) ps时,它会说flag provided but not defined: --tls --tlscacert
如果我将 shell 切换为bash,则docker $(docker-machine config dev) ps可以正常工作。那么这里的语法出了什么问题?

我尝试使用Google搜索来寻找答案,似乎该错误与Go有关,也许吗?

Docker版本1.5.0,内部版本为a8a31ef

鱼,版本2.1.1

编辑:这是docker-machine config dev的输出
--tls --tlscacert=/Users/me/.docker/machine/machines/dev/ca.pem --tlscert=/Users/me/.docker/machine/machines/dev/cert.pem --tlskey=/Users/me/.docker/machine/machines/dev/key.pem -H="tcp://192.168.99.102:2376"

最佳答案

您正在遇到this issue

简短的答案是,bash会将命令替换进一步拆分为任何空格上的单独参数,而fish仅使用换行符将其替换。由于docker-machine config dev不输出换行符,因此外部docker命令仅获得一个带有嵌入空格的大参数。

要模拟bash行为,可以用换行符替换空格:

docker (docker-machine config dev | tr -s ' ' \n) ps

那应该做您期望的。

关于docker - fish shell 通过命令传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28839792/

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