我有一个像这样的脚本:
#!/usr/bin/env bash
eval $(docker-machine env default)
目标是自动设置变量,如
export DOCKER_TLS_VERIFY
export DOCKER_HOST
export DOCKER_CERT_PATH
export DOCKER_MACHINE_NAME
但是当我之后检查时,变量没有设置。如果我手动运行每个export
命令,则情况并非如此。我做错了什么?
答案 0 :(得分:0)
export
使变量仅可用于活动shell会话。如果您希望它们在会话中持续存在,则必须将它们添加到您的bash配置文件中:
docker-machine env default >> ~/.bash_profile
这样,变量将在以后的所有shell会话中可用。确保在执行命令后重新启动shell。
答案 1 :(得分:-1)
如果您希望在当前shell中设置环境,则需要" source"脚本而不是运行它。
运行脚本时,变量将在子bash
进程环境中设置,并且在脚本/进程终止后将不存在。
$ ./machine.sh
DOCKER_HOST is tcp://192.168.99.100:2376
$ echo "[$DOCKER_HOST]"
[]
当您提供脚本时,变量将在您当前的环境中设置
$ . machine.sh
DOCKER_HOST is tcp://192.168.99.100:2376
$ echo "[$DOCKER_HOST]"
[tcp://192.168.99.100:2376]