脚本Docker,运行脚本后未连接?

所以我有一个如下所示的脚本:

#!/bin/bash if [ $1 ]; then docker-machine start $1 docker-machine env $1 eval $(docker-machine env $1) docker ps -a fi 

一旦运行,这些命令的范围似乎已经结束。 例如,一旦脚本运行,我就没有连接到docker-machine,但是我想将这部分脚本编写出来,以便我可以访问它。

例如,运行这个脚本(“./script.sh”)后,我仍然不能运行“docker ps -a”。

发生这种情况的原因是什么?在执行这个脚本之后,怎样才能有效地连接它?

脚本(或任何其他进程)不能修改其父进程的环境。 这正是docker-machine env发出需要使用eval进行评估的shell代码的原因。

如果你想让这些variables在你的脚本之外访问,你需要安排在当前shell中运行eval $(docker-machine env <whatever>)