【发布时间】:2015-11-27 05:17:29
【问题描述】:
我试图对 docker 的命令进行包装以更改 docker 机器上下文。这是命令和输出:
docker-machine env dev
set -x DOCKER_TLS_VERIFY "1";
set -x DOCKER_HOST "tcp://192.168.99.101:2376";
set -x DOCKER_CERT_PATH "/Users/sandric/.docker/machine/machines/dev";
set -x DOCKER_MACHINE_NAME "dev";
# Run this command to configure your shell:
# eval (docker-machine env dev)
函数代码,我放在.config/fish/config.fish中:
function cdm
eval (docker-machine env $argv)
end
因此,当尝试在新会话中运行 cdm 时,函数已评估,但上下文没有改变。但是,如果我会运行:
eval (docker-machine env default)
从命令提示符,并尝试使用不同的参数运行 cdm - 一切正常。所以我怀疑它与这个命令试图从fish函数设置的环境变量的存在有关。我什至尝试然后尝试将该函数更改为别名(这也是我得到的fish函数的别名)命令常量而不是参数:
alias cdm "eval (docker-machine env dev)"
它的工作原理相同 - 如果我首先在新打开的会话中运行此别名,它不会更改环境变量,但如果我从命令提示符运行 eval 代码 - 在该别名按预期工作之后。
那么,到底是怎么回事,有人有什么想法吗?
【问题讨论】:
标签: fish